// JQuery no conflict defination
var JQ = jQuery.noConflict();
JQ(document).ready(init);

function init(){
	faq();
	tip();
	
	// cCode show/hide
	JQ('#cCode').focus(function(){
		var val = JQ(this).val();
		var txt = 'דוגמא: 5357XXXX';
		var newVal = show_hide(val,txt);
		JQ(this).val(newVal);
	});
	
	JQ('#cCode').blur(function(){
		var val = JQ(this).val();
		var txt = 'דוגמא: 5357XXXX';
		var newVal = show_hide(val,txt);
		JQ(this).val(newVal);
	});
}

// Faq
function faq(){
	JQ('.faq li.a').hide();
	JQ('.faq li.q').css('cursor','pointer');
	JQ('.faq li.q').click(function(){
		JQ(this).nextUntil('li.q').slideToggle();
	});
}

// News
function news(){
	JQ('#news_list').css('overflow','hidden');
	var object = JQ('#news_list ul');
	var objectH = object.height();
	var speed = 10000;
	
	// Set styles
	object.css({
		'position':'absolute',
		'top': objectH + 'px'
	});
	
	var objectTo = 450;
	
	// Stop on hover
	object.hover(function(){
		object.stop();
	},function(){
		newsAnim();
	});
	
	// Start animation
	function newsAnim(){
		JQ('#news_list ul').animate( {top: '-='+objectTo} , speed , function(){object.css('top',objectH+'px');newsAnim();} );
	}
	
	newsAnim();
}

// Remove html tags
function removeHTMLTags(){
	if(document.getElementById && document.getElementById("input-code")){
		var strInputCode = document.getElementById("input-code").innerHTML;
		/* 
			This line is optional, it replaces escaped brackets with real ones, 
			i.e. < is replaced with < and > is replaced with >
		*/	
		strInputCode = strInputCode.replace(/&(lt|gt);/g, function (strMatch, p1){
			return (p1 == "lt")? "<" : ">";
		});
		var strTagStrippedText = strInputCode.replace(/<\/?[^>]+(>|$)/g, "");
		alert("Output text:\n" + strTagStrippedText);	
	// Use the alert below if you want to show the input and the output text
	//		alert("Input code:\n" + strInputCode + "\n\nOutput text:\n" + strTagStrippedText);	
	}	
}

//=========================================
//	FORM FUNCTIONS
//=========================================
function sendMail(obj){
	var action = JQ(obj).attr('action');
	var data = JQ(obj).serializeArray();
	var valid = validateData(data);
	
	if(valid===true){
		JQ(obj).hide();
		JQ(obj).parent().prepend('<p id="fstatus">מבצע שליחה ... בבקשה המתן</p>');
		JQ('#fstatus').css('color','red');
		JQ.post(action,data,
			function(result){
				JQ('#fstatus').text(result);
			}
		);
	}
	return false;
}

function validateData(data){
	var regTxt = new RegExp('^[a-zA-Zא-ת ]+$');
	var regNum = new RegExp('^[0-9]+$');
	var regMail = new RegExp('^[a-zA-Z_\.\-]+@[a-zA-Z_\.\-]+\.[a-z]{2,4}$');
	var regMsg = new RegExp("^[a-zA-Zא-ת0-9 \n]+[\._?:#$*\-]*$","gi");
	var result = false;
	var errCount = 0;
	var phoneCount = 0;
	
	JQ.each(data,function(index,field){
		var error = '';
		switch(field.name){
			case 'uname':
			case 'usubject':
				result = regTxt.test(field.value);
				error = 'הכנס אותיות בלבד';
				break;
			case 'uphone':
			case 'uphone2':
				if(phoneCount==0){
					result = regNum.test(field.value);
					phoneCount = 1;
				} else {
					result = true;
					break;
				}
				error = 'הכנס מספרים בלבד';
				break;
			case 'uemail':
				if(phoneCount==0){
					result = regMail.test(field.value);
					phoneCount = 1;
				} else {
					result = true;
					break;
				}
				error = 'הכנס דוא&quot;ל';
				break;
			case 'umessage':
			case 'uwhere':
				result = regMsg.test(field.value);
				error = 'הכנס פרטים';
				break;
		}
		
		var lb = JQ('[name="'+field.name+'"]').prev('label');
		lb.children('span').remove();
		if(result!==true){
			var lbV = lb.html();
			lb.html(lbV+' <span> - '+error+'</span>');
			lb.children('span').css('color','red');
			errCount++;
		}
	});
	
	if(errCount > 0){
		return false;
	} else {
		return true;
	}
}

//=========================================
//	PRICES FUNCTIONS
//=========================================
function getZone(){
	var fArea = JQ('#fromArea option:selected').val();
	var tArea = JQ('#toArea option:selected').val();
	//alert(tArea);
	if(tArea != ''){
		
		JQ.ajax({
			type: "POST",
			url: "data.php",
			data: {fromArea: fArea, toArea: tArea},
			dataType: "json",
			error: function(){
				JQ('#areaZone_wrap').hide();
				JQ('.button3').hide();
				JQ('#result_price').html('בחר יעד');
				JQ('#txt1800').remove();
				alert('כרגע אין יעדים למדינה זו');
			},
			success: function(data){
				//alert(data);
				JQ('#areaZone').empty();
				JQ.each(data,function(index,opt){
					var opt2 = '<option value="'+opt+'">'+index+'</option>';
					JQ('#areaZone').append(opt2);
				});
				JQ('#areaZone_wrap').show();
				JQ('.button3').show();
			}
		});
	
	};
}

function showPrice(){
	var price = JQ('#areaZone option:selected').val();
	var origin = JQ('#fromArea option:selected').val();
	var originArr = origin.split('|');
	var priceArr = price.split('|');
	var sum = parseInt(priceArr[0]) + parseInt(originArr[1]);
	JQ('#result_price').html( sum + ' cents');
	
	// Show 1800 if exists
	JQ('#txt1800').remove();
	if(priceArr[1]>0){
		var txt = 'יש אפשרות להתקשר מהמספר 1800 בתוספת של '+ priceArr[1] +' סנטים למחיר';
		JQ('#prices_result').parent().append('<div id="txt1800" class="red row"></div>');
		JQ('#txt1800').text(txt);
	}
}

//=========================================
//	TOOLTIP
//=========================================
function tip(){
	var obj = JQ('.tip_icon');
	var txt = obj.attr('title');
	//alert(txt);
	obj.mouseenter(function(){
		var css = {
			'position' : 'absolute',
			'bottom' : '39px',
			'right' : '-270px',
			'background' : '#f5e9c3',
			'padding' : '10px',
			'width' : '243px',
			'border' : '1px solid #ae2c2e'
		};
		obj.append('<div id="tip">'+txt+'</div>');
		JQ('#tip').css(css);
	});
	
	obj.mouseleave(function(){
		JQ('#tip').remove();
	});
}

//=========================================
//	SHOW/HIDE
//=========================================
function show_hide(objVal,objTxt){
	if (objVal == objTxt){
		objVal = '';
	} else if(objVal =='') {
		objVal = objTxt;
	}
	return objVal;
}
