// ******************************************************************************************************************************
// PRELOAD ROLLOVER IMAGES
var myimages=new Array()
	function preloadimages() {
		for (i=0;i<preloadimages.arguments.length;i++) {
			myimages[i]=new Image()
			myimages[i].src=preloadimages.arguments[i]
	}
}

//Enter path of images to be preloaded inside parenthesis. Extend list as desired.
preloadimages("http://www.directdevices.com/directdevices/magicsim/images/left_column/for_iphone_o.png","http://www.directdevices.com/directdevices/magicsim/images/left_column/for_smartphone_o.png","http://www.directdevices.com/directdevices/magicsim/images/left_column/for_2gphone_o.png","http://www.directdevices.com/directdevices/magicsim/images/left_column/accessories_o.png","http://www.directdevices.com/directdevices/magicsim/images/left_column/special_offers_o.png","http://www.directdevices.com/directdevices/magicsim/images/morevideos_home_o.png","http://www.directdevices.com/directdevices/magicsim/images/morevideos_home_play_o.png","http://www.directdevices.com/directdevices/magicsim/images/checkout_o.png","http://www.directdevices.com/directdevices/magicsim/images/addtocart_o.png")
// PRELOAD ROLLOVER IMAGES
// ******************************************************************************************************************************

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function isBlank(s)
{
	var len=s.length;
	var i;
	for(i=0;i<len;++i)
	{
		if(s.charAt(i)!=" ") return false;
	}
	return true;
}

function trim_last(str_val)
{
	var l;
	l=str_val.length;
	str_val=str_val.substr(0,l-1);
	return str_val;
}

function valid_date(obj_val,min_yyyy)
{
	//Returns true if value is a date format or is NULL
	//otherwise returns false
	if (obj_val.length == 0)
	return true;
	
	//Returns true if value is a date in the mm/dd/yyyy format
	isplit = obj_val.indexOf('/');
	
	if (isplit == -1 || isplit == obj_val.length)
	return false;
	
	sDay = obj_val.substring(0, isplit);
	
	if (sDay.length == 0)
	return false;
	
	isplit = obj_val.indexOf('/', isplit + 1);
	
	if (isplit == -1 || (isplit + 1 ) == obj_val.length)
	return false;
	
	sMonth = obj_val.substring((sDay.length + 1), isplit);
	
	if (sMonth.length == 0)
	return false;
	
	sYear = obj_val.substring(isplit + 1);
	
	if (!check_integer(sMonth)) //check month
		return false;
	else if (!check_range(sMonth, 1, 12)) //check month
		return false;
	else if (!check_integer(sYear)) //check year
		return false;
	else if (!check_range(sYear, min_yyyy, 9999)) //check year
		return false;
	else if (!check_integer(sDay)) //check day
		return false;
	else if (!check_day(sYear, sMonth, sDay)) // check day
		return false;
	else return true;
}

function check_day(checkYear, checkMonth, checkDay)
{
	maxDay = 31;
	
	if (checkMonth == 4 || checkMonth == 6 || checkMonth == 9 || checkMonth == 11)
		maxDay = 30;
	else
	{
		if (checkMonth == 2)
		{
			if (checkYear % 4 > 0)
				maxDay =28;
			else if (checkYear % 100 == 0 && checkYear % 400 > 0)
				maxDay = 28;
			else
				maxDay = 29;
		}
	}
	return check_range(checkDay, 1, maxDay); //check day
}

function check_integer(obj_val)
{
	//Returns true if value is a number or is NULL
	//otherwise returns false
	
	if (obj_val.length == 0)
		return true;
	
	//Returns true if value is an integer defined as
	//   having an optional leading +.
	//   otherwise containing only the characters 0-9.
	var decimal_format = ".";
	var check_char;
	
	//The first character can be + blank or a digit.
	check_char = obj_val.indexOf(decimal_format)
	//Was it a decimal?
	if (check_char < 1)
		return check_number(obj_val);
	else
		return false;
}

function number_range(obj_val, min_val, max_val)
{
	// check minimum
	if (min_val != null)
	{
		if (obj_val < min_val) return false;
	}
	
	// check maximum
	if (max_val != null)
	{
		if (obj_val > max_val) return false;
	}
	
	//All tests passed, so...
	return true;
}

function check_number(obj_val)
{
	//Returns true if value is a number or is NULL
	//otherwise returns false
	
	if (obj_val.length == 0) return true;
	
	//Returns true if value is a number defined as
	//   having an optional leading +.
	//   having at most 1 decimal point.
	//   otherwise containing only the characters 0-9.
	var start_format = " .+0123456789";
	var number_format = " .0123456789";
	var check_char;
	var decimal = false;
	var trailing_blank = false;
	var digits = false;
	
	//The first character can be + .  blank or a digit.
	check_char = start_format.indexOf(obj_val.charAt(0))
	//Was it a decimal?
	if (check_char == 1) decimal = true;
	else if (check_char < 1) return false;
	
	//Remaining characters can be only . or a digit, but only one decimal.
	for (var i = 1; i < obj_val.length; i++)
	{
		check_char = number_format.indexOf(obj_val.charAt(i))
		if (check_char < 0) return false;
		else if (check_char == 1)
		{
			if (decimal)		// Second decimal.
				return false;
			else
				decimal = true;
		}
		else if (check_char == 0)
		{
			if (decimal || digits)
				trailing_blank = true;
			// ignore leading blanks
		}
		else if (trailing_blank) return false;
		else digits = true;
	}
	//All tests passed, so...
	return true
}

function check_range(obj_val, min_val, max_val)
{
	//if value is in range then return true else return false
	
	if (obj_val.length == 0) return true;
	
	if (!check_number(obj_val))
	{
		return false;
	}
	else
	{
		return (number_range((eval(obj_val)), min_val, max_val));
	}
	
	//All tests passed, so...
	return true;
}

function prior_date(first_date,second_date)
{
	f_d=new String(first_date);
	f_d_arr=f_d.split("/");
	first_date=f_d_arr[1]+'/'+f_d_arr[0]+'/'+f_d_arr[2];
	
	s_d=new String(second_date);
	s_d_arr=s_d.split("/");
	second_date=s_d_arr[1]+'/'+s_d_arr[0]+'/'+s_d_arr[2];
	
	FDate=new Date(first_date);
	SDate=new Date(second_date);
	if (FDate.valueOf() > SDate.valueOf())
	{
		return true;
	}
}

function numbersOnly(e)
{
	var unicode = e.keyCode? e.keyCode: e.which;
	if(unicode!=8 && unicode!=13)
	{
		if(unicode<48 || unicode>57)
		{
			alert('Please enter only numeric values.');
			return false;
		}
	}
	return true;
}

function is_invalid_phone_fax(s)
{
	var lth=s.length;
	if(s.lastIndexOf('-')==lth || s.lastIndexOf('-')==lth-1 || s.lastIndexOf('+')==lth|| s.lastIndexOf('+')==lth-1)
		return true;
	for(i=0;i<lth;i++)
	{
		if(!((s.charAt(i)>='0' && s.charAt(i)<='9') || s.charAt(i)=='-' || s.charAt(i)=='+'))
			return true;
		if(lth<5)
			return (2);
	}
	return false;
}

function is_invalid_value(q)
{
	if (parseInt(q)< 1 || isBlank(q)) return true;
	
	var l=q.length,flag=false,i;
	
	for (i=0;i<l;i++)
	{
		if (!(q.charAt(i)>='0' && q.charAt(i)<='9'))
		{
			flag=true;
			break;
		}
	}
	return (flag);
}

function echeck(str) 
{
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	
	if (str.indexOf(at)==-1)
	{
	   return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
	{
	   return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
	{
	   return false
	}

	 if (str.indexOf(at,(lat+1))!=-1)
	 {
	   return false
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
	 {
	   return false
	 }

	 if (str.indexOf(dot,(lat+2))==-1)
	 {
	   return false
	 }
	
	 if (str.indexOf(" ")!=-1)
	 {
		return false
	 }
	 return true					
}



var BuyHttp;
function BuyShow()
{
	if(BuyHttp.readyState==4)
	{			
		if(BuyHttp.status == 200 || BuyHttp.status == 0)
		{ 
			var GetResult=BuyHttp.responseText;			
			var GetResultArr=GetResult.split("~");
			document.getElementById("cartItems").innerHTML=GetResultArr[0]+' items';
			document.getElementById("cartTotal").innerHTML='£'+GetResultArr[1];
			window.location='cart.php';
		}			
		else alert("Retrieval Error: " + BuyHttp.statusText);
	}
}	
	
function Buy(pid,prc,act) {
	BuyHttp=Browser_Check(BuyHttp);
	
	var data="PID="+pid+"&PRC="+prc+"&Act="+act;
	var url="http://www.magic-sim.com/cart_ajax.php";
	
	BuyHttp.open("POST",url,true);
	BuyHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	BuyHttp.setRequestHeader("Content-length", data.length);
	BuyHttp.setRequestHeader("Connection", "close");

	BuyHttp.onreadystatechange = BuyShow;
	BuyHttp.send(data);
}

function remove_item(id) {
	if(confirm('Are you sure to remove this item from cart?\n\n OK: Yes\n Cancel: No'))
	{
		document.FrmCart.PID.value=id;
		document.FrmCart.Act.value='Delete';
		document.FrmCart.submit();
	}
}

function update_item() {
	document.FrmCart.Act.value="Update";
	document.FrmCart.submit();
}

function to_checkout() {
	location.href="checkout.php";
}

function continue_shopping() {
	location.href="index.php";
}

// -----------------------------------
// PRODUCT DETAILS PAGE TAB FUNCTIONS
// -----------------------------------
function ShowProdTab(tab,div) {
	// SHOW/HIDE TABS
	document.getElementById('TabDetails').className='TabDetails';
	document.getElementById('TabManual').className='TabManual';
	document.getElementById('TabCompatibility').className='TabCompatibility';
	document.getElementById('TabPictures').className='TabPictures';
	document.getElementById('TabVideos').className='TabVideos';
	document.getElementById(tab).className=tab+'Active';

	// SHOW/HIDE CONTENT
	document.getElementById('DetailsDiv').style.display='none';
	document.getElementById('ManualDiv').style.display='none';
	document.getElementById('CompatibilityDiv').style.display='none';
	document.getElementById('PicturesDiv').style.display='none';
	document.getElementById('VideosDiv').style.display='none';
	document.getElementById(div).style.display='block';
}

