var checkEmail = function(value){
	return (/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(value));
}

var checkOIB = function(oib){
	oib = oib.toString();
	if (oib.length != 11) return false;
	var b = parseInt(oib, 10);
	if (isNaN(b)) return false;
	var a = 10;
	for (var i = 0; i < 10; i++) {
	a = a + parseInt(oib.substr(i, 1), 10);
	a = a % 10;
	if (a == 0) a = 10;
	a *= 2;
	a = a % 11;
	}
	var kontrolni = 11 - a;
	if (kontrolni == 10) kontrolni = 0;
	return kontrolni == parseInt(oib.substr(10, 1));
}

var checkNwsUnsubForm = function(){
	if(Ext.fly('email').dom.value == ''){
		alert('Unesite E-mail!');
		Ext.fly('email').dom.focus();
		return false;
	}else if(!checkEmail(Ext.fly('email').dom.value)) {
		alert('Unesite ispravan E-mail!');
		Ext.fly('email').dom.focus();
		Ext.fly('email').dom.select();
		return false;
	}
	return true;
}

var checkNwsSubForm = function(){
	if(Ext.fly('firstName').dom.value == ''){
		alert('Unesite ime!');
		Ext.fly('firstName').dom.focus();
		return false;
	}else if(Ext.fly('lastName').dom.value == ''){
		alert('Unesite prezime!');
		Ext.fly('lastName').dom.focus();
		return false;
	}else if(Ext.fly('email').dom.value == ''){
		alert('Unesite E-mail!');
		Ext.fly('email').dom.focus();
		return false;
	}else if(!checkEmail(Ext.fly('email').dom.value)) {
		alert('Unesite ispravan E-mail!');
		Ext.fly('email').dom.focus();
		Ext.fly('email').dom.select();
		return false;
	}
	return true;
}

var checkContactForm = function(){
	if(Ext.fly('captchaCode').dom.value == ''){
		alert('Unesite kontrolni kod!');
		Ext.fly('captchaCode').dom.focus();
		return false;
	}else if(Ext.fly('firstName').dom.value == ''){
		alert('Unesite ime!');
		Ext.fly('firstName').dom.focus();
		return false;
	}else if(Ext.fly('lastName').dom.value == ''){
		alert('Unesite prezime!');
		Ext.fly('lastName').dom.focus();
		return false;
	}else if(Ext.fly('email').dom.value == ''){
		alert('Unesite E-mail!');
		Ext.fly('email').dom.focus();
		return false;
	}else if(!checkEmail(Ext.fly('email').dom.value)) {
		alert('Unesite ispravan E-mail!');
		Ext.fly('email').dom.focus();
		Ext.fly('email').dom.select();
		return false;
	}else if(Ext.fly('subject').dom.value == '') {
		alert('Unesite naslov poruke!');
		Ext.fly('subject').dom.focus();
		return false;
	}else if(Ext.fly('content').dom.value == '') {
		alert('Unesite sadržaj poruke!');
		Ext.fly('content').dom.focus();
		return false;
	}
	return true;
}

var checkSendFrendForm = function(){
	if(Ext.fly('captchaCode').dom.value == ''){
		alert('Unesite kontrolni kod!');
		Ext.fly('captchaCode').dom.focus();
		return false;
	}else if(Ext.fly('firstName').dom.value == ''){
		alert('Unesite ime!');
		Ext.fly('firstName').dom.focus();
		return false;
	}else if(Ext.fly('lastName').dom.value == ''){
		alert('Unesite prezime!');
		Ext.fly('lastName').dom.focus();
		return false;
	}else if(Ext.fly('senderEmail').dom.value == ''){
		alert('Unesite E-mail pošiljatelja!');
		Ext.fly('senderEmail').dom.focus();
		return false;
	}else if(!checkEmail(Ext.fly('senderEmail').dom.value)) {
		alert('Unesite ispravan E-mail pošiljatelja!');
		Ext.fly('senderEmail').dom.focus();
		Ext.fly('senderEmail').dom.select();
		return false;
	}else if(Ext.fly('recieverEmail').dom.value == ''){
		alert('Unesite E-mail primatelja!');
		Ext.fly('recieverEmail').dom.focus();
		return false;
	}else if(!checkEmail(Ext.fly('recieverEmail').dom.value)) {
		alert('Unesite ispravan E-mail primatelja!');
		Ext.fly('recieverEmail').dom.focus();
		Ext.fly('recieverEmail').dom.select();
		return false;
	}
	return true;
}

var checkCustomerInfoForm = function(){
	if(Ext.fly('captchaCode').dom.value == ''){
		alert('Unesite kontrolni kod!');
		Ext.fly('captchaCode').dom.focus();
		return false;
	}else if(Ext.fly('firstName').dom.value == ''){
		alert('Unesite ime!');
		Ext.fly('firstName').dom.focus();
		return false;
	}else if(Ext.fly('lastName').dom.value == ''){
		alert('Unesite prezime!');
		Ext.fly('lastName').dom.focus();
		return false;
	}else if(Ext.fly('company').dom.value != '' && !checkOIB(Ext.fly('oib').dom.value)){
		alert('Unesite ispravan OIB!');
		Ext.fly('oib').dom.focus();
		return false;
	}else if(Ext.fly('address').dom.value == ''){
		alert('Unesite ulicu i kućni broj!');
		Ext.fly('address').dom.focus();
		return false;
	}else if(Ext.fly('town').dom.value == ''){
		alert('Unesite mjesto!');
		Ext.fly('town').dom.focus();
		return false;
	}else if(Ext.fly('postOffice').dom.value == ''){
		alert('Unesite poštu!');
		Ext.fly('postOffice').dom.focus();
		return false;
	}else if(Ext.fly('email').dom.value == ''){
		alert('Unesite E-mail!');
		Ext.fly('email').dom.focus();
		return false;
	}else if(!checkEmail(Ext.fly('email').dom.value)) {
		alert('Unesite ispravan E-mail!');
		Ext.fly('email').dom.focus();
		Ext.fly('email').dom.select();
		return false;
	}else if(Ext.fly('subject').dom.value == '') {
		alert('Unesite naslov poruke!');
		Ext.fly('subject').dom.focus();
		return false;
	}
	return true;
}

var WSPCaptcha = function(){
	var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
	var captchaSkinId = 4135;
	var wsp_key_length = 32;
	var wsp_key = '';
	for (var i=0; i<wsp_key_length; i++) {
		var rnum = Math.floor(Math.random() * (chars.length-1));
		wsp_key += chars.substring(rnum, (rnum + 1));
	}
	Ext.fly('captchaImg').dom.src = 'http://webspamprotect.com/captcha.php?id=' + captchaSkinId + '&key=' + wsp_key;
	Ext.fly('captchaKey').dom.value = wsp_key;
}

var printWindow = function(e, t){
	hs.htmlExpand(
		null,
		{
			width:650,
			outlineType: 'rounded-white', 
			wrapperClassName: 'draggable-header', 	
			headingText: 'Print',
			objectType: 'iframe',
			src:'?print=y&' + (document.location.search.length > 0 ? document.location.search.substring(1) : ''),
			align:'center',
			numberPosition:null
		}
	);
	return false;
}

Ext.onReady(function() {
	// top menu control
	if(Ext.fly('topMenu')){
		var topMenu = new Ext.ux.Menu('topMenu', {transitionType: 'slide'});
		topMenu.el.setStyle(
			{
				position:'',
				visibility:'',
				display:''
			}
		);
	}
	// vertical text scroller widget
	if(Ext.fly('verTextScroller')){
		new ABCS.Carousel('verTextScroller', {
			transitionType:'scroll-top',
			itemSelector:'div',
			interval: 0.03,
			initDelay:2,
			pauseOnHover:true
		});
	}
	// image slider widget
	if(Ext.fly('imgSliderTop')){
		new ABCS.Carousel('imgSliderTop', {
			interval: 8,
			transitionSpeed: 0.5,
			initDelay:5
		});
	}
	// foto album slider widget
	if(Ext.fly('fotoAlbumSlider')){
		new ABCS.Carousel('fotoAlbumSlider', {
			transitionType: 'fade',
			itemSelector:'div',
			interval: 7,
			transitionSpeed: .8,
			initDelay:5
		});
	}
	// foto album tree
	if(Ext.fly('foto-root')){
		var treeExpanders = Ext.get('foto-root').select('li:has(ul) > table img.expander');
		if(treeExpanders.elements.length > 0){
			treeExpanders.on('click', function(e, t){
				var t = Ext.get(t), childUL = t.findParentNode('li', 5, true).child('ul:first'),
				cfg = {
					useDisplay: true, 
					easing:'easeNone', 
					duration:.2,
					callback:function(hider){
						if(t.hasClass('opened')){
							t.replaceClass('opened', 'closed')
						}else if(t.hasClass('opened-hover')){
							t.replaceClass('opened-hover', 'closed-hover');
						}
						else if(t.hasClass('closed')){
							t.replaceClass('closed', 'opened');
						}else if(t.hasClass('closed-hover')){
							t.replaceClass('closed-hover', 'opened-hover');
						}
					}
				};
				if(childUL.isVisible()){
					childUL.slideOut('t', cfg);
				}else{
					var openedSibling =  childUL.parent().parent().child('>li > ul{display!=none}');
					if(openedSibling){
						openedSibling.slideOut('t', {
							useDisplay: true, 
							easing:'easeNone', 
							duration:.2,
							callback:function(hider){
								var expander = hider.parent().child('>table td > img.expander');
								if(expander.hasClass('opened')){
									expander.replaceClass('opened', 'closed')
								}else if(expander.hasClass('opened-hover')){
									expander.replaceClass('opened-hover', 'closed-hover');
								}
								childUL.slideIn('t', cfg);
							}
						});
					}else{
						childUL.slideIn('t', cfg);
					}
				}
			}).hover(
				function(e, t){
					t = Ext.fly(t);
					if(t.hasClass('opened')){
						t.replaceClass('opened', 'opened-hover');
					}else{
						t.replaceClass('closed', 'closed-hover');
					}
				},
				function(e, t){
					t = Ext.fly(t);
					if(t.hasClass('opened-hover')){
						t.replaceClass('opened-hover', 'opened');
					}else{
						t.replaceClass('closed-hover', 'closed');
					}
				}
			);
			
		}else{
			delete(treeExpanders);
		}
	}
	
	// catalogue table
	if(Ext.fly('clatalogueList')){
		var catalogueListEl = Ext.fly('clatalogueList').select('tr:not(tr:first-child)').hover(
			function(e, t){
				t = e.getTarget('tr', 5, true);
				t.toggleClass('over')
			},
			function(e, t){
				t = e.getTarget('tr', 5, true);
				t.toggleClass('over')
			}
		);
		
	}
	
	
	// captcha image loader
	if(Ext.fly('captchaImg')){
		WSPCaptcha();
	}
	// print hight-slide window control event
	hs.Expander.prototype.onAfterExpand = function (sender) {
	   if(sender.headingText == 'Print'){
			(
				function(){
					window.frames[sender.iframe.name].focus();
					window.frames[sender.iframe.name].print();
					sender.close();
				}
			).defer(500);
	   }
	}
});
