/**
 * COMMON DHTML FUNCTIONS
 * These are handy functions I use all the time.
 *
 * By Seth Banks (webmaster at subimage dot com)
 * http://www.subimage.com/
 *
 * Up to date code can be found at http://www.subimage.com/dhtml/
 *
 * This code is free for you to use anywhere, just keep this comment block.
 */

/**
 * X-browser event handler attachment and detachment
 * TH: Switched first true to false per http://www.onlinetools.org/articles/unobtrusivejavascript/chapter4.html
 *
 * @argument obj - the object to attach event to
 * @argument evType - name of the event - DONT ADD "on", pass only "mouseover", etc
 * @argument fn - function to call
 */

 function show_hide_cate(cat_id)
{
	if(document.getElementById(cat_id).style.display == "")
	{
		document.getElementById(cat_id).style.display = "none";
	}
	else
	{
		document.getElementById(cat_id).style.display = "";
	}

}

function addEvent(obj, evType, fn){
 if (obj.addEventListener){
    obj.addEventListener(evType, fn, false);
    return true;
 } else if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType, fn);
    return r;
 } else {
    return false;
 }
}
function removeEvent(obj, evType, fn, useCapture){
  if (obj.removeEventListener){
    obj.removeEventListener(evType, fn, useCapture);
    return true;
  } else if (obj.detachEvent){
    var r = obj.detachEvent("on"+evType, fn);
    return r;
  } else {
    alert("Handler could not be removed");
  }
}

/**
 * Code below taken from - http://www.evolt.org/article/document_body_doctype_switching_and_more/17/30655/
 *
 * Modified 4/22/04 to work with Opera/Moz (by webmaster at subimage dot com)
 *
 * Gets the full width/height because it's different for most browsers.
 */
function getViewportHeight() {
	if (window.innerHeight!=window.undefined) return window.innerHeight;
	if (document.compatMode=='CSS1Compat') return document.documentElement.clientHeight;
	if (document.body) return document.body.clientHeight; 

	return window.undefined; 
}
function getViewportWidth() {
	var offset = 17;
	var width = null;
	if (window.innerWidth!=window.undefined) return window.innerWidth; 
	if (document.compatMode=='CSS1Compat') return document.documentElement.clientWidth; 
	if (document.body) return document.body.clientWidth; 
}

/**
 * Gets the real scroll top
 */
function getScrollTop() {
	if (self.pageYOffset) // all except Explorer
	{
		return self.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop)
		// Explorer 6 Strict
	{
		return document.documentElement.scrollTop;
	}
	else if (document.body) // all other Explorers
	{
		return document.body.scrollTop;
	}
}
function getScrollLeft() {
	if (self.pageXOffset) // all except Explorer
	{
		return self.pageXOffset;
	}
	else if (document.documentElement && document.documentElement.scrollLeft)
		// Explorer 6 Strict
	{
		return document.documentElement.scrollLeft;
	}
	else if (document.body) // all other Explorers
	{
		return document.body.scrollLeft;
	}
}


function Get_Xml_Http_Object()
{
	var xmlHttp=null;
	try
	{			
		xmlHttp = new XMLHttpRequest();// Firefox, Opera 8.0+, Safari
	}
	catch (e)
	{
		try
		{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");	// Internet Explorer
		}
		catch (e)
		{
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

function show_popup_div(product_id,page_name,page_number,brand_id,category_id,subcategory_id)
{
	if(document.getElementById("popupdiv"))
	{
		//document.getElementById('popupdiv').style.display = "";
	}
	else
	{	
		var divTag = document.createElement("div");

		divTag.id = "popupdiv";
		divTag.className = "product_div_popup";		
		document.body.appendChild(divTag); 
	}
	document.getElementById('popupdiv').innerHTML = '<img src="./images/loading.gif" border="0">';
	xmlHttp_show_product = Get_Xml_Http_Object();
	if (xmlHttp_show_product == null)
	{
		alert ("Your browser does not support AJAX!");
		return false;
	} 
	var url="./modalContent.php";
	url=url+"?product_id="+product_id;
	url=url+"&page_name="+page_name;
	url=url+"&page="+page_number;
	url=url+"&brand="+brand_id;
	url=url+"&category_id="+category_id;
	url=url+"&subcategory_id="+subcategory_id;
	url=url+"&sid="+Math.random();
	xmlHttp_show_product.onreadystatechange = statechange_show_product;
	xmlHttp_show_product.open("GET",url,true);
	xmlHttp_show_product.send(null);
}


function statechange_show_product()
{
	if (xmlHttp_show_product.readyState == 4)
	{
		var display_product = xmlHttp_show_product.responseText;
		staticbar();
		document.getElementById('popupdiv').style.display = '';
		document.getElementById('popupdiv').innerHTML = display_product;
	}
}


var persistclose=0 //set to 0 or 1. 1 means once the bar is manually closed, it will remain closed for browser session
var startX = 0 //set x offset of bar in pixels
var startY = 80 //set y offset of bar in pixels
var verticalpos="fromtop" //enter "fromtop" or "frombottom"

function iecompattest()
{
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function get_cookie(Name) 
{
	var search = Name + "="
	var returnvalue = "";
	if (document.cookie.length > 0)
	{
		offset = document.cookie.indexOf(search)
		if (offset != -1) 
		{
			offset += search.length
			end = document.cookie.indexOf(";", offset);
			if (end == -1) end = document.cookie.length;
				returnvalue=unescape(document.cookie.substring(offset, end))
		}
	}
	return returnvalue;
}

function closebar()
{
	if (persistclose)
		document.cookie="remainclosed=1"
	document.getElementById("popupdiv").style.visibility="hidden"
}

function staticbar()
{
	barheight=document.getElementById("popupdiv").offsetHeight
	var ns = (navigator.appName.indexOf("Netscape") != -1) || window.opera;
	var d = document;
	function ml(id)
	{
		var el=d.getElementById(id);
		if (!persistclose || persistclose && get_cookie("remainclosed")=="")
		el.style.visibility="visible"
		if(d.layers)el.style=el;
		el.sP=function(x,y){this.style.left=x+"px";this.style.top=y+"px";};
		el.x = startX;
		if (verticalpos=="fromtop")
		el.y = startY;
		else{
		el.y = ns ? pageYOffset + innerHeight : iecompattest().scrollTop + iecompattest().clientHeight;
		el.y -= startY;
		}
		return el;
	}
	window.stayTopLeft=function()
	{
		if (verticalpos=="fromtop")
		{
			var pY = ns ? pageYOffset : iecompattest().scrollTop;
			ftlObj.y += (pY + startY - ftlObj.y)/8;
		}
		else
		{
			var pY = ns ? pageYOffset + innerHeight - barheight: iecompattest().scrollTop + iecompattest().clientHeight - barheight;
			ftlObj.y += (pY - startY - ftlObj.y)/8;
		}
		ftlObj.sP(ftlObj.x, ftlObj.y);
		setTimeout("stayTopLeft()", 20);
	}
	ftlObj = ml("popupdiv");
	stayTopLeft();
}


function findPosX(obj)
{
	var curleft = 0;
	if(obj.offsetParent)
	while(1) 
	{
		curleft += obj.offsetLeft;
		if(!obj.offsetParent)
		break;
		obj = obj.offsetParent;
	}
	else if(obj.x)
		curleft += obj.x;

	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if(obj.offsetParent)
	while(1)
	{
		curtop += obj.offsetTop;
		if(!obj.offsetParent)
		break;
		obj = obj.offsetParent;
	}
	else if(obj.y)
	curtop += obj.y;
	return curtop;
}


function locate_div(location_div,div_name)
{
	hp = document.getElementById(div_name);
	X = findPosX(location_div);
	Y = findPosY(location_div);
	
	hp.style.top = Y +(20)+ 'px';
	hp.style.left = X +(-150)+ 'px';	
	hp.style.display = "";
}


function hide_div(div_name)
{
	document.getElementById(div_name).style.display = "none";
}

function textCounter(field, countfield, maxlimit) 
				{
			if (field.value.length > maxlimit) // if too long...trim it!
			field.value = field.value.substring(0, maxlimit);
			// otherwise, update 'characters left' counter
			else 
			countfield.value = maxlimit - field.value.length;
			}

			function MM_validateForm() { //v4.0
			  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
			  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
				if (val) { nm=val.name; if ((val=val.value)!="") {
				  if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
					if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
				  } else if (test!='R') { num = parseFloat(val);
					if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
					if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
					  min=test.substring(8,p); max=test.substring(p+1);
					  if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
				} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
			  } if (errors) alert('The following error(s) occurred:\n'+errors);
			  document.MM_returnValue = (errors == '');
			}

function trim(stringToTrim)
{
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function oneMail()
{
	if(trim(document.getElementById("firstname").value) == "")
		{
		//alert("Hi");
			document.getElementById("register_error").innerHTML = "Error: Please enter the firstname.";
			document.getElementById("firstname").focus();
			return false;
		}
		/*
		if(trim(document.getElementById("telephone").value) == "")
		{
			document.getElementById("register_error").innerHTML = "Error: Please enter the phone no.";
			document.getElementById("telephone").focus();
			return false;
		}
		*/

        var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		var email_address = document.getElementById("email").value;
		var l= trim(document.getElementById("email").value);
		//alert(l);
		if(l == "")
		{
			document.getElementById("register_error").innerHTML = "Error: Please enter email id.";
			document.getElementById("email").focus();
			return false;
		}
		if(reg.test(email_address) == false) 
		{
			document.getElementById("register_error").innerHTML = "Error: Invalid Email Address.";
			document.getElementById("email").focus();
			return false;
		}
/*
    if(trim(document.getElementById("city").value) == "")
		{
			document.getElementById("register_error").innerHTML = "Error: Please enter the city name.";
			document.getElementById("city").focus();
			return false;
		}
		if(document.getElementById("state").value == "")
		{
			document.getElementById("register_error").innerHTML = "Error: Please enter the state name.";
			document.getElementById("state").focus();
			return false;
		}
		if(document.getElementById("country").value == "")
		{
			document.getElementById("register_error").innerHTML = "Error: Please retype the country name.";
			document.getElementById("country").focus();
			return false;
		}
*/
		if(document.getElementById("your_question").value == "")
		{
			document.getElementById("register_error").innerHTML = "Error: Please retype the your question.";
			document.getElementById("your_question").focus();
			return false;
		}
		
}

