// retrieves the XMLHttpRequest object
function GetXmlHttpObject()
{
	var objXMLHttp;
	try
	{
	  // Firefox, Opera 8.0+, Safari
	  objXMLHttp=new XMLHttpRequest();
	}
	catch (e)
  	{
  		// Internet Explorer
  		try
		{
		  objXMLHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
	    catch (e)
		{
			try
			  {
			  objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
			  }
			catch (e)
			  {
			  alert("Your browser does not support AJAX!");
			  return false;
			  }
		}
  	}
	return objXMLHttp;
}

function Send_Price(pid)
{
	window.location.href = 'price_request.php?prod_id='+pid;
}

function popupWindowURL(url, winname,  w, h, menu, resize, scroll) {

    var x = (screen.width-w)/2;
    var y = (screen.height-h)/3;

	if (winname == null) winname = "newWindow";
	if (w == null) w = 800;
	if (h == null) h = 600;
	if (resize == null) resize = 1;

	menutype   = "nomenubar";
	resizetype = "noresizable";
	scrolltype = "noscrollbars";
	if (menu) menutype = "menubar";
	if (resize) resizetype = "resizable";
	if (scroll) scrolltype = "scrollbars";
	//alert(url+","+x+","+winname);
    cwin=window.open(url,winname,"top=" + y + ",left=" + x + ",screenX=" + x + ",screenY=" + y + "," + "status," + menutype + "," + scrolltype + "," + resizetype + ",width=" + w + ",height=" + h);

	if (!cwin.opener) cwin.opener=self;
	cwin.focus();

	return true;
}

function CheckUncheck_Click(fld, status)
{
	if(fld)
	{
		if(fld.length)
			for(i=0; i < fld.length; i++)
				fld[i].checked = status;
		else
			fld.checked = status;
	}
}

function Menu_ShowHide(menu, img, imgUp, imgDown)
{
	if(menu)
	{
		if(menu.style.display == 'none')
		{
			menu.style.visibility	= 'visible';
			menu.style.display		= 'block';
			img.src = imgUp;
			SetCookie(menu.id, 'open');
		}
		else
		{
			menu.style.visibility 	= 'hidden';
			menu.style.display 		= 'none';
			img.src = imgDown;
			SetCookie(menu.id, 'close');
		}
	}
}

function UploadImage_Change(obj, imgTag, defaultVal, defaultWidth)
{
	imgTag.width=120;

	if(obj.value == '')
		imgTag.src = defaultVal;
	else
	{
		imgTag.src = obj.value;
		if(defaultWidth != '')
			imgTag.width=defaultWidth;
	}
}

function SetTime()
{
	if(!document.getElementById('timeId'))	return;

	var Hours;
	var Mins;
	var Time;

	Stamp = new Date();

	Hours = Stamp.getHours();
	
	if (Hours >= 12)
		Time = " PM";
	else
		Time = " AM";
	
	if (Hours > 12)
		Hours -= 12;
	
	if (Hours == 0)
		Hours = 12;
	
	Mins = Stamp.getMinutes();

	if (Mins < 10)
		Mins = "0" + Mins;

	Sec = Stamp.getSeconds();
	if (Sec < 10)
		Sec = "0" + Sec;

	document.getElementById('timeId').innerHTML = ("&nbsp;" + Hours + ":" + Mins + ":" + Sec + Time);
}

setInterval('SetTime()',1000);

function getDate(parmDate)
{
	var m_names = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September","October", "November", "December");

	var curr_date = parmDate.getDate();

	var sup = "";

	if (curr_date == 1 || curr_date == 21 || curr_date ==31)
	{
	   sup = "st";
	}
	else if (curr_date == 2 || curr_date == 22)
	{
	   sup = "nd";
	}
	else if (curr_date == 3 || curr_date == 23)
	{
	   sup = "rd";
	}
	else
	{
	   sup = "th";
	}

	var curr_month 	= parmDate.getMonth();
	var curr_year 	= parmDate.getFullYear();

	return (curr_date + "<SUP>" + sup + "</SUP> " + m_names[curr_month] + " " + curr_year);
}

function GetCookie (name) 
{
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen) 
	{
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg)
			return getCookieVal (j);

		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) break; 
	}
	return null;
}

function SetCookie (name, value) 
{
	var argv = SetCookie.arguments;
	var argc = SetCookie.arguments.length;
	
	var expires = (argc > 2) ? argv[2] : null;
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	
	document.cookie = name + "=" + escape (value) +
	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
	((path == null) ? "" : ("; path=" + path)) +
	((domain == null) ? "" : ("; domain=" + domain)) +
	((secure == true) ? "; secure" : "");
}

function Change_SiteLanguage()
{
	document.frmSiteLanguage.Current_Language.value = document.frmSiteLanguage.site_languages.value;
	document.frmSiteLanguage.action = '';
	document.frmSiteLanguage.submit();
}

// Resolve a string identifier to an object
// ========================================
function resolveObject(s) 
{
	if (document.getElementById && document.getElementById(s)!=null) 
	{
  		return document.getElementById(s);
	}
	else if (document.all && document.all[s]!=null) 
	{
  		return document.all[s];
	}
	else if (document.anchors && document.anchors.length && document.anchors.length>0 && document.anchors[0].x) 
	{
  		for (var i=0; i<document.anchors.length; i++) 
		{
			if (document.anchors[i].name==s) 
			{ 
	  			return document.anchors[i]
			}
  		}
	}
}		
  
  
function getAll(o) 
{
	var fixBrowserQuirks = true;

	// If a string is passed in instead of an object ref, resolve it
    if (typeof(o)=="string") 
	{
    	
		o = resolveObject(o);
    }
    
    if (o==null) 
	{
    	return null;
    }
    
    var left = 0;
    var top = 0;
    var width = 0;
    var height = 0;
    var parentNode = null;
    var offsetParent = null;
  
    
    offsetParent = o.offsetParent;
    
	var originalObject = o;
    
	var el = o; // "el" will be nodes as we walk up, "o" will be saved for offsetParent references
    
	while (el.parentNode!=null) 
	{
		el = el.parentNode;
    	if (el.offsetParent==null) 
		{
			
      	}
    	else 
		{
        	var considerScroll = true;
			/*
			In Opera, if parentNode of the first object is scrollable, then offsetLeft/offsetTop already 
			take its scroll position into account. If elements further up the chain are scrollable, their 
			scroll offsets still need to be added in. And for some reason, TR nodes have a scrolltop value
			which must be ignored.
			*/
        	if (fixBrowserQuirks && window.opera) 
			{
          		if (el==originalObject.parentNode || el.nodeName=="TR") 
				{
            		considerScroll = false;
          		}
        	}
        	if (considerScroll) 
			{
          		if (el.scrollTop && el.scrollTop>0) 
				{
            		top -= el.scrollTop;
          		}
          		if (el.scrollLeft && el.scrollLeft>0) 
				{
            		left -= el.scrollLeft;
          		}
        	}
      	}
      
	  // If this node is also the offsetParent, add on the offsets and reset to the new offsetParent
		if (el == offsetParent) 
		{
      		left += o.offsetLeft;
        	if (el.clientLeft && el.nodeName!="TABLE") 
			{ 
          		left += el.clientLeft;
        	}
        	
			top += o.offsetTop;
        	
			if (el.clientTop && el.nodeName!="TABLE") 
			{
          		top += el.clientTop;
        	}
        	
			o = el;
        	
			if (o.offsetParent==null) 
			{
          		if (o.offsetLeft) 
				{
            		left += o.offsetLeft;
          		}
          		if (o.offsetTop) 
				{
            		top += o.offsetTop;
          		}
        	}
        	offsetParent = o.offsetParent;
      	}
    }
    
  
    if (originalObject.offsetWidth) 
	{
    	width = originalObject.offsetWidth;
    }
	if (originalObject.offsetHeight) 
	{
      	height = originalObject.offsetHeight;
    }
    
    return height;
}  

function Resize_iFrame()
{
		var donotresizeme = document.getElementById("donotresizeme");
		if (donotresizeme)
		{	return; }

		if(Resize_Check() == true)
		{
		// getting internal DIV dimensions
		var internal_div;
		var using;
		internal_div = document.getElementById("contentScheduleGeneral");
			
		var x = internal_div.style.width;
		var y = internal_div.style.height;
		
		var checkispreview = document.getElementById("checkispreview");
		if (checkispreview == null)
		{
			y = getAll("contentScheduleGeneral");
		}
				
		// apply it to iframe document	
		myif = parent.document.getElementById("frameinner");
		//alert("Height = " + y + "   -   ScrollHeight = " + myif.scrollHeight);
		myif.height = y + 12;
		}
}

function Resize_Check()
{
	try
	{
		if(parent.location.href.indexOf(CHECK_URL) == 0)
		{
			return true;	
		}
		else
		{
			return false;
		}
	}
	catch(e)
	{
		return false;
	}
}

function addGlobalStyle() {
    var head, style;
    if(Resize_Check() == false)
	{
		head = document.getElementsByTagName('head')[0];
		if (!head) { return; }
		style = document.createElement('style');
		style.type = 'text/css';
		if (style.styleSheet)
		{
			style.styleSheet.cssText = NEW_CSS;
		}
		else
		{
			style.innerHTML = NEW_CSS;
		}
		head.appendChild(style);
	}
}

function AddEventListener(element, eventType, handler, capture)
{
	if (element.addEventListener)
		element.addEventListener(eventType, handler, capture);
	else if (element.attachEvent)
		element.attachEvent("on" + eventType, handler);
}
