var WEB_PATH="http://sahibs.com/";
var WEB_NEW_PATH="http://sahibs.com/";

function setMake()
{
	
  var id = document.getElementById('part_id').value;
  var make = document.getElementById('make_id');
  var model = document.getElementById('model');
  var engine = document.getElementById('engine');
  var div = document.getElementById('loading');
  //Modified
  make.style.display = "none";
  div.style.display = "block";
  //Modified
  make.options.length = 0;
  model.options.length = 0;
  engine.options.length = 0;
  if (id == '-1')
  {
    return;
  }
var url=WEB_PATH+"/getautodata.php?s=make&id=" + id;
 //alert(url);
  var response = ajax_call_server(url);
//  alert(response);
  response = response.split(';');
  if (response.length <= 1)
  {
    make.options[0] = new Option('ANY', 'ANY');
    model.options[0] = new Option('ANY', 'ANY');
    engine.options[0] = new Option('ANY', 'ANY');
    return;
  }
  //modified
  make.style.display = "block";
  make.disabled = false;
  //modified
  var myoption = '';
  make.options[0] = new Option('--Select Make--', '-1');
  for (i = 0; i < response.length - 1; i++)
  {
    myoption = response[i].split(',');
    make.options[i + 1] = new Option(myoption[1], myoption[0]);
  }
  //modified
  div.style.display = "none"; //modified
} // set Make


function setModel()
{
  var part = document.getElementById('part_id').value;
  var id = document.getElementById('make_id').value;
  var model = document.getElementById('model');
  var engine = document.getElementById('engine');
  var year = document.getElementById('year');
  var div = document.getElementById('loading1');
  model.options.length = 0; //clearOptions(model);
  engine.options.length = 0; //clearOptions(engine);
  year.options.length = 0; //clearOptions(year);
  //Modified
  model.style.display = "none";
  div.style.display = "block";
  //Modified
  if (id == '-1')
  {
    return;
  }
  var response = ajax_call_server(WEB_PATH+"/getautodata.php?s=model&id=" + id + "&id2=" + part);
  
  response = response.split(';');

  if (response.length <= 1)
  {
    model.options[0] = new Option('any', 'any');
    engine.options[0] = new Option('any', 'any');
    year.options[0] = new Option('any', 'any');
    return;
  }
  //modified
  model.style.display = "block";
  model.disabled = false;
  //modified
  model.options[0] = new Option('--Select Model--', '-1');
  for (i = 0; i < response.length - 1; i++)
  {
    model.options[i + 1] = new Option(response[i], response[i]);
  }
  div.style.display = "none";
} // set Model

function setEngine()
{
  var part = document.getElementById('part_id').value;
  var makeid = document.getElementById('make_id').value;
  var id = document.getElementById('model').value;
  var engine = document.getElementById('engine');
  var year = document.getElementById('year');
  var div = document.getElementById('loading2');
  //Modified
  engine.style.display = "none";
  div.style.display = "block";
  //Modified
  engine.options.length = 0;
  year.options.length = 0;
  if (id == '-1')
  {
    return;
  }
  //modified
  engine.style.display = "block";
  engine.disabled = false;
  //modified
  var response = ajax_call_server(WEB_PATH+"/getautodata.php?s=engine&id=" + id + "&id2=" + makeid + "&id3=" + part);
  // alert(response);
  response = response.split(';');
  if (response.length <= 1)
  {
    engine.options[0] = new Option('any', 'any');
    year.options[0] = new Option('any', 'any');
    div.style.display = "none";
    return;
  }
  engine.options[0] = new Option('--Select Engine--', '-1');
  for (i = 0; i < response.length - 1; i++)
  {
    engine.options[i + 1] = new Option(response[i], response[i]);
  }
  setYears();
  div.style.display = "none";
} // set engine end.

function setYears()
{
  var id = document.getElementById('make_id').value;
  var id2 = document.getElementById('model').value;
  var year = document.getElementById('year');
  var div = document.getElementById('loading3');
  //Modified 	
  year.style.display = "none";
  div.style.display = "block";
  //Modified
  year.options.length = 0; //clearOptions(year);
  if (id == '-1' || id == 'any')
  {
    return;
  }
  var response = ajax_call_server(WEB_PATH+"/getautodata.php?s=year&id=" + id + "&id2=" + id2);
  response = response.split(';');
  if (response.length <= 1)
  {
    year.disabled = false;
    year.style.display = "block";
    year.options[0] = new Option('any', 'any');
    div.style.display = "none";
    return;
  }
  var myoption = '';
  //modified 
  year.disabled = false;
  year.style.display = "block";
  //modified
  year.options[0] = new Option('--Select Year--', '-1');
  for (i = 0; i < response.length - 1; i++)
  {
    myoption = response[i].split(',');
    year.options[i + 1] = new Option(myoption[1], myoption[0]);
  }
  div.style.display = "none";
}
function newwindow()
{
window.open('jex5.htm','jav','width=300,height=200,resizable=yes');
}
function getLoad(){
 var div = document.getElementById('loading3');
	 var mainDiv=document.getElementById("showSAE");
	 div.style.display="block";
	 mainDiv.style.display="none";	
	}
	function endLoad(){
 var div = document.getElementById('loading3');
	 var mainDiv=document.getElementById("showSAE");
	  mainDiv.style.display="block";	
	  div.style.display="none";
	}
function setPartP(part_id,url)
{
	getLoad();
	  url=url+"&part_id="+part_id;

	  var response = ajax_call_server(url);	
	  document.getElementById("showSAE").innerHTML=response;
	endLoad();
}
function setPage(page,url)
{
	getLoad();
	 
	  url=url+"&page="+page;

	  var response = ajax_call_server(url);	
	  document.getElementById("showSAE").innerHTML=response;
	  
	  endLoad();
}
function setMakeP(make_id,part_id,url)
{
	 getLoad();
	 url=url+"&make_id="+make_id+"&part_id="+part_id;

	  var response = ajax_call_server(url);	
	  document.getElementById("showSAE").innerHTML=response;
	   endLoad();
}

function setModelP(model,make_id,part_id,url)
{
getLoad();
	  url=url+"&model="+model+"&make_id="+make_id+"&part_id="+part_id;

	  var response = ajax_call_server(url);	
	  document.getElementById("showSAE").innerHTML=response;
	   endLoad();
}

function setToolTip(spe,id,mod)
{
 var url=WEB_PATH+"/mymodel.php?spe="+spe+"&id="+id+"&mod="+mod
	  var response = ajax_call_server(url);	
	 return response;
	
}
function getValidCaptcha(code)
{
	  var response = ajax_call_server(WEB_PATH+"/getautodata.php?s=code&code=" + code);	
	
	return response;
}
function getCoupon()
{
	 var coupon_code=document.getElementById('dis_coupon').value;
	  var response123 = jQuery.getValues(WEB_NEW_PATH+"getautodata.php","coupon_code=" + coupon_code );	
	 // alert(response123);
	  response123=parseInt(response123);
	
	if(response123==0){
	alert("Invalid Coupon Number");
}else{
	
	 // var amount=split('_', response);

	location.href=WEB_PATH+"products/cart/show/all.html";
}
	//return response;
}
var floattext=new Array();
jQuery.extend({
getValues: function(url,data) {
	var result = null;
  jQuery.ajax
	({
  type: "POST",
  dataType: "text",
  url: url,
  data: data,
  async: false,
  success: function(msg,status,suxhr){
    result=msg;
  },
  error:function(erxhr,status,errorThrown) {
	   alert( "Data Error: " + errorThrown );
	  }
  
});
    return result;
}});

function breakDown(xrefid)
{
	  jQuery.getBreakDown(WEB_NEW_PATH+"getautodata.php","xrefid_brk=" + xrefid );	
	
	//return response;
}
jQuery.extend({
getBreakDown: function(url,data) {
	var result = null;
  jQuery.ajax
	({
  type: "POST",
  dataType: "text",
  url: url,
  data: data,
  async: false,
  success: function(msg,status,suxhr){
  jQuery("#showBreakDown").html(msg);
	jQuery("#showBreakDown").fadeIn();
  },
  error:function(erxhr,status,errorThrown) {
	   alert( "Data Error: " + errorThrown );
	  }
  
});
    return result;
}});
function ajax_new_call(url,data) {
	
    jQuery.ajax
	({
  type: "POST",
  dataType: "text",
  url: url,
  data: data,
  success: function(msg,status,suxhr){
    alert(msg);
  },
  error:function(erxhr,status,errorThrown) {
	   alert( "Data Error: " + errorThrown );
	  }
  
});
	
}
function ajax_call_server(url)
{
	
  var xml = null;
  try
  {
    xml = new ActiveXObject("Microsoft.XMLHTTP");
  }
  catch (exception)
  {
    xml = new XMLHttpRequest();
  }
  if (xml != null)
  {
    xml.open("GET", url, false);
    xml.send(null);
    if (xml.status == 404) alert("Error 404: Incorrect url.");
    return xml.responseText;
  }
  alert("Your browser does not support XMLHTTP.");
  return "";
}

function GetXmlHttpObject(){ // This function we will use to call our xmlhttpobject.
	var objXMLHttp=null; // Sets objXMLHttp to null as default.
	if (window.XMLHttpRequest){ // If we are using Netscape or any other browser than IE lets use xmlhttp.
	objXMLHttp=new XMLHttpRequest(); // Creates a xmlhttp request.
	}else if (window.ActiveXObject){ // ElseIf we are using IE lets use Active X.
	objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP"); // Creates a new Active X Object.
	} // End ElseIf.
	return objXMLHttp; // Returns the xhttp object.
	} // Close Function
	
function loadModel(id,type,mod)
{ 
//alert('hi');
/*document.getElementById("loadimage").style.display = "block";*/
//document.getElementById("modresults").style.display = "none";/=
<!--document.getElementById('loading').style.display = "block";-->
	var xmlHttp;
	   xmlHttp=GetXmlHttpObject()
	   if (xmlHttp==null)
	   {
		   alert ("Browser does not support HTTP Request")
		   return
		}
	   var url="getModel.php?model="+id+"&type="+type+"&make="+mod
	  // alert ("url="+url);
	   xmlHttp.onreadystatechange = function()
		{
		   if(xmlHttp.readyState==4)
		  {
			 // alert(xmlHttp.responseText);
			 document.getElementById('res').style.visibility='visible';
			 document.getElementById('res').innerHTML=xmlHttp.responseText;
		  }
	   }
	   xmlHttp.open("GET",url,true)
	   xmlHttp.send(null)
	   document.getElementById('loadimage').style.display = "none";
	   document.getElementById('prod').style.display = "none";
	   
	var response = ajax_call_server();
}
function mymodel(spe,id,mod){
var xmlHttp;
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
   alert ("Browser does not support HTTP Request")
   return
}
 var url="mymodel.php?spe="+spe+"&id="+id+"&mod="+mod
 
  xmlHttp.onreadystatechange = function()
		{
		   if(xmlHttp.readyState==4)
		  {
			  //alert(xmlHttp.responseText);
			 //document.getElementById('res').style.visibility='visible';
			 floattext=xmlHttp.responseText;
			 
//			 document.getElementById('spn').innerHTML=xmlHttp.responseText;
		  }
	   }
 
xmlHttp.open("GET",url,true)
xmlHttp.send(null);
var response = ajax_call_server();
}
function floattext1(){
	alert("ss");
	floattext1=floattext
	}



//floattext[0]='- <a href="http://www.javascriptkit.com/cutpastejava.shtml">Free JavaScripts</a><br>- <a href="http://www.javascriptkit.com/javaindex.shtml">JavaScript Tutorials</a><br>- <a href="http://www.javascriptkit.com/dhtmltutors/index.shtml">DHTML/ CSS Tutorials</a><br>- <a href="http://www.javascriptkit.com/jsref/">JavaScript Reference</a><br><div align="right"><a href="javascript:hidefloatie()">Hide Box</a></div>'

//floattext[1]='Some other floatie text'

var floatiewidth="250px" //default width of floatie in px
var floatieheight="60px" //default height of floatie in px. Set to "" to let floatie content dictate height.
var floatiebgcolor="lightyellow" //default bgcolor of floatie
var fadespeed=10 //speed of fade (5 or above). Smaller=faster.

var baseopacity=0
function slowhigh(which2){
imgobj=which2
browserdetect=which2.filters? "ie" : typeof which2.style.MozOpacity=="string"? "mozilla" : ""
instantset(baseopacity)
highlighting=setInterval("gradualfade(imgobj)",fadespeed)
}

function instantset(degree){
cleartimer()
if (browserdetect=="mozilla")
imgobj.style.MozOpacity=degree/100
else if (browserdetect=="ie")
imgobj.filters.alpha.opacity=degree
}

function cleartimer(){
if (window.highlighting) clearInterval(highlighting)
}

function gradualfade(cur2){
if (browserdetect=="mozilla" && cur2.style.MozOpacity<1)
cur2.style.MozOpacity=Math.min(parseFloat(cur2.style.MozOpacity)+0.1, 0.99)
else if (browserdetect=="ie" && cur2.filters.alpha.opacity<100)
cur2.filters.alpha.opacity+=10
else if (window.highlighting)
clearInterval(highlighting)
}

function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function paramexists(what){
return(typeof what!="undefined" && what!="")
}

function showfloatie(thetext, e, optbgColor, optWidth, optHeight){
var dsocx=(window.pageXOffset)? pageXOffset: ietruebody().scrollLeft;
var dsocy=(window.pageYOffset)? pageYOffset : ietruebody().scrollTop;
var floatobj=document.getElementById("dhtmlfloatie")
floatobj.style.left="-800px"
floatobj.style.display="block"
floatobj.style.backgroundColor=paramexists(optbgColor)? optbgColor : floatiebgcolor
floatobj.style.width=paramexists(optWidth)? optWidth+"px" : floatiewidth
floatobj.style.height=paramexists(optHeight)? optHeight+"px" : floatieheight!=""? floatieheight : ""
floatobj.innerHTML=thetext
var floatWidth=floatobj.offsetWidth>0? floatobj.offsetWidth : floatobj.style.width
var floatHeight=floatobj.offsetHeight>0? floatobj.offsetHeight : floatobj.style.width
var winWidth=document.all&&!window.opera? ietruebody().clientWidth : window.innerWidth-400
var winHeight=document.all&&!window.opera? ietruebody().clientHeight : window.innerHeight+20

e=window.event? window.event : e
floatobj.style.left=dsocx+winWidth-floatWidth-5+"px"
if (e.clientX>winWidth-floatWidth && e.clientY+20>winHeight-floatHeight)
floatobj.style.top=dsocy+5+"px"
else
floatobj.style.top=dsocy+winHeight-floatHeight-5+"px"
slowhigh(floatobj)
}

function hidefloatie(){
var floatobj=document.getElementById("dhtmlfloatie")
floatobj.style.display="none"
}
if (typeof window.attachEvent == 'object') {
    document.write('<!--[if lte IE 6]>\n' + '<script type="text/javascript">\n' + 'var ie6_or_less=1;\n' + '<\/script>\n' + '<![endif]-->\n' + '<!--[if lt IE 5.5]>\n' + '<script type="text/javascript">\n' + 'var less_than_ie5_5=1;\n' + '<\/script>\n' + '<![endif]-->');
}

var menu = [],
    resizereinit = true;
function setImage()
{
		document.getElementById('siimage').src = WEB_PATH+'/captcha/securimage_show_example.php?sid=' + Math.random(); 
		return false
}
function truebody() {
    return (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body;
}

function getedge(o, is_top) {
    var edge;
    if (is_top) edge = window.pageYOffset ? window.pageYOffset : truebody().scrollTop ? truebody().scrollTop : 0;
    else {
        edge = o.menupos == 'left' ? 0 : truebody().clientWidth ? truebody().clientWidth : window.innerWidth && truebody().offsetHeight <= window.innerHeight ? window.innerWidth : window.innerWidth ? window.innerWidth - 20 : 0;
        edge += window.pageXOffset ? window.pageXOffset : truebody().scrollLeft ? truebody().scrollLeft : 0;
    }
    return edge;
}

function keep_in_view(o) {
    if (o.keepinview) {
        if (o.m.ft) {
            o.m.ft = 0;
            o.m.topP = o.m.offsetTop;
            o.m.ltop = 0;
        }
        var pt = getedge(o, 'top'),
            ks = typeof o.keepinview == 'number' && o.keepinview < o.m.topP && o.keepinview > 0 ? o.keepinview : o.m.topP,
            smooth = 0;
        if (pt != o.m.ltop) {
            if (o.menupos == 'top') o.m.style.visibility = 'hidden';
            smooth = pt > o.m.topP - ks ? .2 * (pt - o.m.ltop - o.m.topP + ks) : o.m.ltop > 0 ? -.2 * o.m.ltop : 0;
            smooth = smooth > 0 ? Math.ceil(smooth) : Math.floor(smooth);
        }
        else if (o.menupos == 'top') o.m.style.visibility = '';
        o.m.style.top = (o.m.style.top ? parseInt(o.m.style.top) : o.m.topP) + smooth + 'px';
        o.m.ltop += smooth;
    }
    if (o.menupos == 'top') {
        if (typeof o.menuleft == 'string') {
            o.m.style.left = o.menuleft
            o.m.style.marginLeft = Math.floor(o.m.getElementsByTagName('div')[0].offsetWidth / -2) + 'px';
            o.lleft = o.m.offsetLeft;
        }
        o.m.style.marginLeft = 0;
        o.m.style.left = o.lleft + (window.pageXOffset ? window.pageXOffset : truebody().scrollLeft ? truebody().scrollLeft : 0) + 'px';
    }
    else o.m.style.left = getedge(o) - (o.menupos == 'right' ? o.m.offsetWidth : 0) + 'px';
}

function move(el, num) {
    el.getElementsByTagName('div')[0].style[el.menupos] = parseInt(el.getElementsByTagName('div')[0].style[el.menupos]) + num + 'px';
    if (el.menupos == 'right') {
        if (el.kviewtype == 'absolute') el.style.left = parseInt(el.style.left) - num + 'px';
        el.style.width = parseInt(el.style.width) + num + 'px';
    }
    if (num > 0) el.moving = setTimeout(function () {
        movein(el)
    }, el.menuspeed)
    else el.moving = setTimeout(function () {
        moveout1(el)
    }, el.menuspeed)
}

function movein(el) {
    var m1 = parseInt(el.getElementsByTagName('div')[0].style[el.menupos]);
    if (el.moving) clearTimeout(el.moving);
    if (m1 < -1 * el.borderwidth) move(el, Math.min(-1 * m1 - el.borderwidth, 10));
}

function moveout(el) {
    if (el.moving) clearTimeout(el.moving);
    el.moving = setTimeout(function () {
        moveout1(el)
    }, el.menupause);
}

function moveout1(el) {
    var aw = el.menupos == 'top' ? el.b.offsetHeight : el.b.offsetWidth,
        m1 = el.getElementsByTagName('div')[0];
    if (el.moving) clearTimeout(el.moving);
    if (parseInt(m1.style[el.menupos]) > aw - (el.menupos == 'top' ? m1.offsetHeight : m1.offsetWidth) + 10) move(el, -10);
    else {
        m1.style[el.menupos] = aw - (el.menupos == 'top' ? m1.offsetHeight : m1.offsetWidth) + 'px';
        if (el.menupos == 'right') {
            el.style.width = aw + 'px';
            if (el.kviewtype == 'absolute') {
                var ed = truebody().clientWidth ? truebody().clientWidth : window.innerWidth && truebody().offsetHeight <= window.innerHeight ? window.innerWidth : window.innerWidth ? window.innerWidth - 20 : 0;
                ed += window.pageXOffset ? window.pageXOffset : truebody().scrollLeft ? truebody().scrollLeft : 0;
                el.style.left = ed - el.offsetWidth + 'px';
            }
        }
    }
}

function to_em(n, o) {
    return Math.round((n / (10 * parseInt(o.fontsize) / 100)) * 1000) / 900;
}

function getrows(o) {
    var r = o.menuItems.length + (o.wrapbar ? 1 : 0);
    for (var i_tem = 0; i_tem < o.menuItems.length; i_tem++)
    if (o.menuItems[i_tem][4] && o.menuItems[i_tem][4] == 'no') r--;
    return r;
}

function make_bar(o) {
    var bt = o.menupos == 'right' || o.menupos == 'top' ? '<tr>' : '';
    bt += '<td id="' + o.id + 'bar" ' + (o.menupos == 'top' ? 'colspan="' + o.d_colspan : 'rowspan="' + getrows(o)) + '">'
    if (!/<img/.test(o.bartext.toLowerCase())) {
        for (var i_tem = 0; i_tem < o.bartext.length - (o.menupos == 'top' ? 1 : 0); i_tem++)
        bt += o.menupos == 'top' && o.bartext.charAt(i_tem) == ' ' ? '\u00a0 ' : o.menupos == 'top' ? o.bartext.charAt(i_tem) + ' ' : '<br>' + o.bartext.charAt(i_tem);
        bt += o.menupos == 'top' ? o.bartext.charAt(o.bartext.length - 1) + '</td>' : '<br>\u00a0</td>';
    }
    else bt += o.bartext + '</td>'
    return bt + (o.menupos == 'right' ? '\n' : '</tr>\n');
}

function make_style(o) {
    if (o.user_defined_stylesheet && !o.design_mode) return '';
    var sheet = ''
    sheet += '#' + o.id + ' {\n' + (o.menupos == 'top' ? 'top:0;\n' : 'top:' + o.menutop + 'px; /*set initial Height from top*/\n') + (o.menupos == 'top' ? 'left:' + o.menuleft + (typeof o.menuleft == 'number' ? 'px' : '') + ';\n' : '') + (o.menupos == 'right' && o.kviewtype == 'fixed' ? 'right:0;\n' : '') + 'position:' + o.kviewtype + ';\n' + 'overflow:' + (o.menupos == 'right' ? 'hidden' : 'visible') + ';\n' + 'z-index:100;\n' + (o.menupos == 'left' ? 'left:0;\n' : '') + '}\n' + '#' + o.id + ' div {\n' + 'border-width:' + (typeof o.outbrdwidth == 'number' ? o.outbrdwidth + 'px' : o.outbrdwidth) + '; /*Menu\'s outer border*/\n' + 'border-style:' + o.outbrdstyle + ';\n' + (o.outbrdcolor == 'none' ? '' : 'border-color:' + o.outbrdcolor + ';\n') + 'position:absolute;\n' + 'color:black;\n' + 'background-color:transparent;\n' + '}\n' + '#' + o.id + ' table {\n' + 'border:' + o.borderwidth + 'px ' + o.borderstyle + ' ' + o.bordercolor + '; /*Menu\'s inner border*/\n' + (o.menupos == 'top' ? 'border-left-width:0;\n' : '') + (o.menupos == 'top' ? 'border-bottom-width:0;\n' : '') + 'font-family:' + o.menufont + ', sans-serif; /*Overall font for Menu*/\n' + 'font-size:' + o.fontsize + ';\n' + 'border-collapse:collapse;\n' + 'background-color:' + (o.allowtransparent ? 'transparent' : o.bordercolor) + ';\n' + 'width:' + to_em(o.barwidth + o.hdingwidth + o.borderwidth * (o.d_colspan + 2), o) + 'em;\n' + '}\n' + '#' + o.id + ' td { /*Characteristics for cells in the menu table - do not specify width here*/\n' + 'border-bottom:' + o.borderwidth + 'px ' + o.borderstyle + ' ' + o.bordercolor + ';\n' + 'border-left:' + o.borderwidth + 'px ' + o.borderstyle + ' ' + o.bordercolor + ';\n' + 'height:' + to_em(o.linkheight, o) + 'em;\n' + 'padding:0;\n' + 'margin:0;\n' + 'text-align:' + o.linktxtalign + ';\n' + '}\n' + '#' + o.id + ' #' + o.id + 'bar { /*Characteristics for initially visible \'draw\' bar (the vertical cell)*/\n' + (o.menupos == 'top' ? 'height:' : 'width:') + to_em(o.barwidth + (document.all || o.menupos == 'top' ? o.borderwidth * 2 : 0), o) + 'em;\n' + 'background-color:' + o.barbgcolor + ';\n' + 'color:' + o.barcolor + ';\n' + 'font-weight:' + o.barfontweight + ';\n' + 'text-align:' + o.baralign + ';\n' + (o.menupos == 'top' ? '' : 'border-width:0;\n') + 'cursor:default;\n' + '}\n' + '#' + o.id + ' .heading { /*Characteristics for heading cells in the menu table*/\n' + 'height:' + to_em(o.hdingheight, o) + 'em;\n' + 'color:' + o.hdingcolor + ';\n' + 'font-weight:' + o.hdingfontweight + ';\n' + 'text-indent:' + o.hdingindent + 'ex;\n' + 'background-color:' + o.hdingbgcolor + '; /*Background Color for menu headings */\n' + 'width:' + to_em(o.hdingwidth, o) + 'em; /*This will be the menu body width.  This' + (o.menupos != 'top' ? ' (plus #' + o.id + 'bar width for left and right menus)' : '') + ' and 4 times the border width should also be the menu table\'s approximate width*/\n' + 'vertical-align:' + o.hdingvalign + ';\n' + 'text-align:' + o.hdingtxtalign + ';\n' + 'border-left-color:' + o.hdingbgcolor + ';\n' + 'border-left-style:solid;\n' + '}\n' + (o.wrapbar && o.menupos != 'top' ? '#' + o.id + ' #' + o.id + 'lastrow {\n' + 'height:' + to_em(o.barwidth, o) + 'em;\n' + 'background-color:' + o.barbgcolor + ';\n' + 'border-width:0;\n' + 'margin:0 0 ' + o.borderwidth + 'px ' + o.borderwidth + 'px;\n' + '}\n' : o.menupos != 'top' ? '#' + o.id + ' #' + o.id + 'lastrow {\n' + 'border-bottom-width:0;\n' + 'margin:0 0 ' + o.borderwidth + 'px ' + o.borderwidth + 'px;\n' + '}\n' : '') + '#' + o.id + ' a {\n' + 'width:100%;\n' + 'height:100%;\n' + 'display:block;\n' + 'padding-top:' + to_em(o.linktopad, o) + 'em;\n' + '}\n';
    if (o.design_mode) {
        if (document.getElementById('ooostyle')) alert('Only one menu\'s script generated styles may be displayed at a time!\n\nCurrently showing ' + document.getElementById('ooostyle').tell + '\'s stylesheet\n\n(or there is a syntax error - most\n\u00a0\u00a0\u00a0\u00a0likely in the menuItem.js file)');
        else {
            var isusing = o.user_defined_stylesheet ? ' not' : '';
            var sw = (window.innerWidth ? window.innerWidth : truebody().clientWidth) / 1.5;
            document.write('<textarea id="ooostyle" cols="' + Math.floor(sw / 8) + '" rows="65" wrap="off" style="margin-left:-' + Math.floor(sw / 2) + 'px;overflow:auto;position:absolute;top:10px;left:50%;z-index:1000;">\n')
            document.write('\/* ' + o.id + '\'s Script Generated Styles: */\n\/* ' + o.id + ' is' + isusing + ' currently using these via the script */\n\n' + sheet);
            document.write('\n\/* End ' + o.id + '\'s Script Generated Styles */');
            document.write('</textarea>')
            document.getElementById('ooostyle').tell = o.id;
        }
    }
    if (!o.user_defined_stylesheet) return '<style type="text/css">\n' + sheet + '</style>';
    return '';
}

function make_style_make_menu(o, s) {
    if (s) {
        if (!o.id) {
            alert('a unique id is required for each menu');
            return;
        };
        if (!o.menuItems || o.menuItems.constructor != Array) {
            alert('an array of menu items is required for each menu');
            return;
        };
        if (!o.menutop) {
            o.menutop = 200
        };
        if (!o.menuleft) {
            o.menuleft = '50%'
        };
        if (!o.keepinview && typeof o.keepinview == 'boolean') o.keepinview = false;
        else if (!o.keepinview) {
            o.keepinview = 30
        };
        if (!o.menuspeed) {
            o.menuspeed = 20
        };
        if (!o.menupause) {
            o.menupause = 500
        };
        if (!o.d_colspan) {
            o.d_colspan = 2
        };
        if (!o.allowtransparent) {
            o.allowtransparent = false
        };
        if (!o.barwidth) {
            o.barwidth = 22
        };
        if (!o.hdingwidth) {
            o.hdingwidth = 149
        };
        if (!o.hdingheight) {
            o.hdingheight = 22
        };
        if (!o.hdingindent) {
            o.hdingindent = 1
        };
        if (!o.linkheight) {
            o.linkheight = 16
        };
        if (!o.outbrdwidth) {
            o.outbrdwidth = 0
        };
        if (!o.outbrdcolor) {
            o.outbrdcolor = "none"
        };
        if (!o.outbrdstyle) {
            o.outbrdstyle = "none"
        };
        if (!o.borderwidth) {
            o.borderwidth = 0
        };
        if (!o.bordercolor) {
            o.bordercolor = "black"
        };
        if (!o.borderstyle) {
            o.borderstyle = "solid"
        };

        if (!o.barcolor) {
            o.barcolor = "white"
        };
        if (!o.barbgcolor) {
            o.barbgcolor = "#444444"
        };
        if (!o.barfontweight) {
            o.barfontweight = "bold"
        };
        if (!o.baralign) {
            o.baralign = "center"
        };
        if (!o.menufont) {
            o.menufont = "verdana"
        };
        if (!o.fontsize) {
            o.fontsize = "80%"
        };
        if (!o.hdingcolor) {
            o.hdingcolor = "white"
        };
        if (!o.hdingbgcolor) {
            o.hdingbgcolor = "#3194C1"
        };
        if (!o.hdingfontweight) {
            o.hdingfontweight = "bold"
        };
        if (!o.hdingvalign) {
            o.hdingvalign = "middle"
        };
        if (!o.hdingtxtalign) {
            o.hdingtxtalign = "left"
        };
        if (!o.linktopad) {
            o.linktopad = 0
        };
        if (!o.linktxtalign) {
            o.linktxtalign = "left"
        };
        if (!o.linktarget) {
            o.linktarget = ""
        };
        if (!o.menupos) {
            o.menupos = "left"
        };
        if (!o.bartext) {
            o.bartext = "CALL BACK"
        };
        if (!o.user_defined_stylesheet) {
            o.user_defined_stylesheet = false
        };
        if (!o.user_defined_markup) {
            o.user_defined_markup = false
        };
        if (!o.design_mode) {
            o.design_mode = false
        };
        if (!o.wrapbar) {
            o.wrapbar = false
        };
        if (!o.kviewtype) {
            o.kviewtype = 'absolute'
        };
        if (typeof ie6_or_less != 'undefined') o.kviewtype = 'absolute';
        else if (o.menupos == 'top' && o.kviewtype == 'absolute') o.kviewtype = 'fixed';
        while (!o.menuItems[o.menuItems.length - 1])
        o.menuItems.length = o.menuItems.length - 1;
        document.write(make_style(o));
        return;
    }
    else {
        if (o.design_mode || !o.user_defined_markup) {
            var hw = o.hdingwidth;

            var tb = '<div id="' + o.id + '" onmouseover="movein(this);" onmouseout="moveout(this);"><div><table>\n';
            tb += o.menupos == 'right' ? make_bar(o) : '';
            for (var i_tem = 0; i_tem < o.menuItems.length; i_tem++) {
                if ((o.menupos == 'top' && i_tem == 0) || i_tem > 0 && (!o.menuItems[i_tem - 1][4] || o.menuItems[i_tem - 1][4] !== 'no')) tb += '<tr>'
                if (o.menuItems[i_tem][1] && o.menuItems[i_tem][1] !== '') {
                    tb += '<td ' + (i_tem == o.menuItems.length - 1 && !o.wrapbar && o.menupos != 'top' ? 'id="' + o.id + 'lastrow" ' : '') + 'colspan="' + (o.menuItems[i_tem][3] && o.menuItems[i_tem][3] !== '' ? o.menuItems[i_tem][3] : o.d_colspan) + '"><a href="' + o.menuItems[i_tem][1] + '" target="' + (o.menuItems[i_tem][2] ? o.menuItems[i_tem][2] : o.linktarget) + '">' + o.menuItems[i_tem][0] + '</a></td>'
                }
                else tb += '<td ' + (i_tem == o.menuItems.length - 1 && !o.wrapbar && o.menupos != 'top' ? 'id="' + o.id + 'lastrow" ' : '') + 'class="heading" ' + (o.menuItems[i_tem][3] && o.menuItems[i_tem][3] !== '' && o.menuItems[i_tem][3] !== o.d_colspan ? 'style="width:' + to_em(hw * o.menuItems[i_tem][3] / o.d_colspan, o) + 'em;' + (i_tem > 0 && o.menuItems[i_tem - 1][4] && o.menuItems[i_tem - 1][4] == 'no' ? 'border-left-width:0;margin-left:' + o.borderwidth + 'px;' : '') + '" ' : '') + 'colspan="' + (o.menuItems[i_tem][3] && o.menuItems[i_tem][3] !== '' ? o.menuItems[i_tem][3] : o.d_colspan) + '">' + o.menuItems[i_tem][0] + '</td>'
                if (!o.menuItems[i_tem][4] || o.menuItems[i_tem][4] !== 'no') tb += o.menupos == 'left' && i_tem == 0 ? make_bar(o) : '</tr>\n';
            }
            tb += o.wrapbar && o.menupos != 'top' ? '<tr><td id="' + o.id + 'lastrow" colspan="' + o.d_colspan + '">\u00a0</td></tr>\n' : '';
            tb += o.menupos == 'top' ? make_bar(o) : '';

            if (!o.user_defined_markup) document.write(tb + '</table></div></div>')
        }
        if (o.design_mode) document.getElementById('ooostyle').value += '\n\n<!-- The Markup for ' + o.id + ' -->\n\n' + tb + '</table></div></div>\n\n<!-- End ' + o.id + '\'s Markup -->'
        o.m = document.getElementById(o.id);
        var b = document.getElementById(o.id + 'bar');
        o.m.b = b;
        o.m.ft = 1;
        o.m.menupos = o.menupos;
        o.m.menupause = o.menupause;
        o.m.menuspeed = o.menuspeed;
        o.m.borderwidth = o.borderwidth;
        o.m.kviewtype = o.kviewtype;
        resizevent(o);
        if (o.menupos == 'top' && typeof window.attachEvent == 'object' && typeof ie6_or_less != 'undefined') window.attachEvent('onscroll', function () {
            o.m.style.visibility = 'hidden';
        });
        if (o.kviewtype == 'absolute' && (o.menupos != 'top' || (typeof ie6_or_less != 'undefined' && typeof window.attachEvent == 'object'))) setInterval(function () {
            keep_in_view(o)
        }, 20)
    }
}

function resizevent(o) {
    var m1 = o.m.getElementsByTagName('div')[0],
        bo = o.menupos == 'top' ? o.m.b.offsetHeight : o.m.b.offsetWidth;
    m1.style[o.menupos] = bo - (o.menupos == 'top' ? m1.offsetHeight : m1.offsetWidth) + 'px'
    if (o.menupos == 'right') {
        if (o.kviewtype == 'absolute') o.m.style.left = getedge(o) - o.m.offsetWidth + 'px';
        o.m.style.width = bo + 'px';
        o.m.style.height = m1.offsetHeight + 'px';
        if (typeof less_than_ie5_5 != 'undefined') {
            o.m.onmouseover(o.m);
            o.m.onmouseout(o.m);
        }
    }
    if (o.menupos == 'top') {
        o.m.style.width = m1.style.width = o.m.getElementsByTagName('table')[0].offsetWidth + 'px';
        if (typeof o.menuleft == 'string') o.m.style.marginLeft = Math.floor(m1.offsetWidth / -2) + 'px';
    }
}
/*

ONTEXTRESIZE EVENT SPOOFER

Including this file in your page will allow you to assign a function
to window.ontextresize, which will be called when the user changes the
size of text on the page.

Used with (as far as I know) permission from: http://forkandspoonhelmet.com/Fork_and_Spoon_Helmet

*/
var ontextresizeLastSize = false;
if (window.attachEvent) window.attachEvent("onload", initOntextresizeListener);
else if (window.addEventListener) window.addEventListener("load", initOntextresizeListener, false);

function initOntextresizeListener() {
    if (!resizereinit || typeof less_than_ie5_5 != 'undefined') return;
    var testDiv = document.createElement("div");
    testDiv.style.position = "absolute";
    testDiv.style.height = "1em";
    testDiv.style.width = "1em";
    testDiv.style.top = "-2em";
    testDiv.style.left = "-2em";
    var docTestDiv = document.body.appendChild(testDiv);
    docTestDiv.id = "ontextresizeTestDiv";
    ontextresizeListener = setInterval("ontextresizeCheckTestDiv()", 100);
}

function ontextresizeCheckTestDiv() {
    if (ontextresizeLastSize != document.getElementById("ontextresizeTestDiv").offsetWidth) {
        if (ontextresizeLastSize && window.ontextresize) window.ontextresize.call();
        ontextresizeLastSize = document.getElementById("ontextresizeTestDiv").offsetWidth;
    }
}
window.ontextresize = function () {
    for (var i_tem = 0; i_tem < menu.length; i_tem++)
    if (typeof menu[i_tem] != 'undefined') resizevent(menu[i_tem]);
};

function make_menus() {
    if (document.getElementById) {
        for (var i_tem = 0; i_tem < menu.length; i_tem++)
        if (typeof menu[i_tem] != 'undefined') make_style_make_menu(menu[i_tem], 's');
        for (i_tem = 0; i_tem < menu.length; i_tem++)
        if (typeof menu[i_tem] != 'undefined') make_style_make_menu(menu[i_tem]);
    }
}

var alpha = /[^0-9a-zA-Z\ \.\_]/;
var character = /[^a-zA-Z\ ]/;
var numeric = /[^0-9\ ]/;
var alphanum = /[^0-9a-zA-Z\ ]/;
var alphacoma = /[^0-9a-zA-Z\ \,]/;
var regphone = /[^0-9\ \+\-\(\)]/;
var regzip = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
var regemail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

function forgotPass(frm) {
    if (frm.email.value.length <= 0) {
        alert('Please enter Email (Eg: abc@xyz.com)');
        frm.email.focus();
        return false
    } else if ((frm.email.value.length > 0) && (!regemail.test(frm.email.value))) {
        alert('Please enter valid Email ID');
        frm.email.focus();
        return false
    }
    return true
}
function callBack(frm) {
    if (frm.name.value.length <= 0) {
        alert('Please enter Name');
        frm.name.focus();
        return false
    } else if (character.test(frm.name.value)) {
        alert('Please enter valid Name(Allowed only Characters)');
        frm.name.focus();
        return false
    }
    if (frm.email.value.length <= 0) {
        alert('Please enter Email (Eg: abc@xyz.com)');
        frm.email.focus();
        return false
    } else if ((frm.email.value.length > 0) && (!regemail.test(frm.email.value))) {
        alert('Please enter valid Email ID');
        frm.email.focus();
        return false
    }
    if (frm.phone.value.length <= 0) {
        alert('Please enter Phone Number');
        frm.phone.focus();
        return false
    } else if (frm.phone.value.length > 0 && regphone.test(frm.phone.value)) {
        alert('Please enter valid Phone Number');
        frm.phone.focus();
        return false
    }
    if (frm.area.value.length <= 0) {
        alert('Please enter Area ');
        frm.area.focus();
        return false
    }
    if (frm.code.value.length <= 0) {
        alert('Please enter code');
        frm.code.focus();
        return false
    } else if (frm.code.value.length > 0) {
        var flag = parseInt(getValidCaptcha(frm.code.value));
        if (!flag) {
            alert('Please enter Valid Captcha');
            return false
        } else return true
    }
    return true
}
function loginForm(frm) {
    if (frm.username.value.length <= 0) {
        alert('Please enter Email ID (Eg: abc@xyz.com)');
        frm.username.focus();
        return false
    } else if ((frm.username.value.length > 0) && (!regemail.test(frm.username.value))) {
        alert('Please enter valid Email ID');
        frm.username.focus();
        return false
    }
    if (document.getElementById('radio').checked) {
        var response = ajax_call_server(WEB_PATH + "checkmail.php?email=" + frm.username.value);
        if (response == 0) {
            document.loginfrm.action = WEB_PATH + "/signup.php"
        } else {
            var msg = "Already registered";
            document.getElementById('getError').innerHTML = msg;
            return false
        }
    } else {
        if (frm.password.value.length <= 0) {
            alert('Please enter Password');
            frm.password.focus();
            return false
        }
        document.loginfrm.action = WEB_PATH + "/login.php"
    }
    return true
}
function signupForm(frm) {
    if (frm.username.value.length <= 0) {
        alert('Please enter Email ID (Eg: abc@xyz.com)');
        frm.username.focus();
        return false
    } else if ((frm.username.value.length > 0) && (!regemail.test(frm.username.value))) {
        alert('Please enter valid Email ID');
        frm.username.focus();
        return false
    }
    if (frm.password.value.length <= 0) {
        alert('Please enter Password');
        frm.password.focus();
        return false
    }
    if (frm.confirmpassword.value.length <= 0) {
        alert('Please enter Confirm Password');
        frm.confirmpassword.focus();
        return false
    }
    if (frm.password.value != frm.confirmpassword.value) {
        alert('Please enter Confirm Password must be same Password');
        frm.confirmpassword.focus();
        return false
    }
    if (frm.first_name.value.length <= 0) {
        alert('Please enter First name');
        frm.first_name.focus();
        return false
    } else if (character.test(frm.first_name.value)) {
        alert('Please enter valid First name(Allowed only Characters)');
        frm.first_name.focus();
        return false
    }
    if (frm.last_name.value.length <= 0) {
        alert('Please enter Last name');
        frm.last_name.focus();
        return false
    } else if (character.test(frm.last_name.value)) {
        alert('Please enter valid Last name(Allowed only Characters)');
        frm.last_name.focus();
        return false
    }
    if (frm.phone.value.length <= 0) {
        alert('Please enter Phone Number');
        frm.phone.focus();
        return false
    } else if (frm.phone.value.length > 0 && regphone.test(frm.phone.value)) {
        alert('Please enter valid Phone Number');
        frm.phone.focus();
        return false
    }
    if (frm.address1.value.length <= 0) {
        alert('Please enter Address1');
        frm.address1.focus();
        return false
    }
    if (frm.city.value.length <= 0) {
        alert('Please enter City');
        frm.city.focus();
        return false
    }
    if (frm.state.value.length <= 0) {
        alert('Please enter State');
        frm.state.focus();
        return false
    }
    if (frm.zip.value.length <= 0) {
        alert('Please enter Zip');
        frm.zip.focus();
        return false
    }
    if (frm.country.value == '-1') {
        alert('Please select Country');
        frm.country.focus();
        return false
    }
    if (frm.code.value.length <= 0) {
        alert('Please enter Captcha');
        frm.code.focus();
        return false
    }
    return true
}
function contactForm(frm) {
    if (frm.name.value.length <= 0) {
        alert('Please enter Name');
        frm.name.focus();
        return false
    } else if (character.test(frm.name.value)) {
        alert('Please enter valid Name(Allowed only Characters)');
        frm.name.focus();
        return false
    }
    if (frm.email.value.length <= 0) {
        alert('Please enter Email (Eg: abc@xyz.com)');
        frm.email.focus();
        return false
    } else if ((frm.email.value.length > 0) && (!regemail.test(frm.email.value))) {
        alert('Please enter valid Email ID');
        frm.email.focus();
        return false
    }
    if (frm.phone.value.length > 0 && regphone.test(frm.phone.value)) {
        alert('Please enter valid Phone Number');
        frm.phone.focus();
        return false
    }
    if (frm.code.value.length <= 0) {
        alert('Please enter Captcha code');
        frm.code.focus();
        return false
    }
    return true
}
function profileForm(frm) {
    if (frm.username.value.length <= 0) {
        alert('Please enter Email ID (Eg: abc@xyz.com)');
        frm.username.focus();
        return false
    } else if ((frm.username.value.length > 0) && (!regemail.test(frm.username.value))) {
        alert('Please enter valid Email ID');
        frm.username.focus();
        return false
    }
    if (frm.password.value.length <= 0 && frm.confirmpassword.value.length > 0) {
        alert('Please enter Password');
        frm.password.focus();
        return false
    }
    if (frm.confirmpassword.value.length <= 0 && frm.password.value.length > 0) {
        alert('Please enter Confirm Password');
        frm.confirmpassword.focus();
        return false
    }
    if (frm.password.value.length > 0 && frm.confirmpassword.value.length > 0 && frm.password.value != frm.confirmpassword.value) {
        alert('Please enter Confirm Password must be same Password');
        frm.confirmpassword.focus();
        return false
    }
    if (frm.first_name.value.length <= 0) {
        alert('Please enter First name');
        frm.first_name.focus();
        return false
    } else if (character.test(frm.first_name.value)) {
        alert('Please enter valid First name(Allowed only Characters)');
        frm.first_name.focus();
        return false
    }
    if (frm.last_name.value.length <= 0) {
        alert('Please enter Last name');
        frm.last_name.focus();
        return false
    } else if (character.test(frm.last_name.value)) {
        alert('Please enter valid Last name(Allowed only Characters)');
        frm.last_name.focus();
        return false
    }
    if (frm.phone.value.length <= 0) {
        alert('Please enter Phone Number');
        frm.phone.focus();
        return false
    } else if (frm.phone.value.length > 0 && regphone.test(frm.phone.value)) {
        alert('Please enter valid Phone Number');
        frm.phone.focus();
        return false
    }
    if (frm.fax.value.length > 0 && regphone.test(frm.fax.value)) {
        alert('Please enter valid Fax Number');
        frm.fax.focus();
        return false
    }
    if (frm.address1.value.length <= 0) {
        alert('Please enter Address1');
        frm.address1.focus();
        return false
    }
    if (frm.city.value.length <= 0) {
        alert('Please enter City');
        frm.city.focus();
        return false;
    }
    if (frm.state.value.length <= 0) {
        alert('Please enter State');
        frm.state.focus();
        return false;
    }
    if (frm.zip.value.length <= 0) {
        alert('Please enter Zip');
        frm.zip.focus();
        return false;
    }
    if (frm.country.value == '-1') {
        alert('Please select Country');
        frm.country.focus();
        return false;
    }
    return true;
}
function setShippingInfo(ele) {
    var frm = ele.form;
    if (ele.checked) {
        frm.shipping_first_name.value = frm.billing_first_name.value;
        frm.shipping_last_name.value = frm.billing_last_name.value;
        frm.shipping_address1.value = frm.billing_address1.value;
        frm.shipping_address2.value = frm.billing_address2.value;
        frm.shipping_phone.value = frm.billing_phone.value;
        frm.shipping_state.value = frm.billing_state.value;
        frm.shipping_city.value = frm.billing_city.value;
        frm.shipping_zip.value = frm.billing_zip.value;
        frm.shipping_country.value = frm.billing_country.value;
        frm.shipping_first_name.readOnly = true;
        frm.shipping_last_name.readOnly = true;
        frm.shipping_address1.readOnly = true;
        frm.shipping_address2.readOnly = true;
        frm.shipping_phone.readOnly = true;
        frm.shipping_state.readOnly = true;
        frm.shipping_city.readOnly = true;
        frm.shipping_zip.readOnly = true;
        frm.shipping_country.readOnly = true;
    } else {
        frm.shipping_first_name.readOnly = false;
        frm.shipping_last_name.readOnly = false;
        frm.shipping_address1.readOnly = false;
        frm.shipping_address2.readOnly = false;
        frm.shipping_phone.readOnly = false;
        frm.shipping_state.readOnly = false;
        frm.shipping_city.readOnly = false;
        frm.shipping_zip.readOnly = false;
        frm.shipping_country.readOnly = false;
    }
}

var timeout = 500;
var closetimer = 0;
var ddmenuitem = 0;

function mopen(id) {
    mcancelclosetime();
    if (ddmenuitem) ddmenuitem.style.visibility = 'hidden';
    ddmenuitem = document.getElementById(id);
    ddmenuitem.style.visibility = 'visible';
}
function mclose() {
    if (ddmenuitem) ddmenuitem.style.visibility = 'hidden';
}
function mclosetime() {
    closetimer = window.setTimeout(mclose, timeout);
}
function mcancelclosetime() {
    if (closetimer) {
        window.clearTimeout(closetimer);
        closetimer = null;
    }
}
document.onclick = mclose;

(function ($) {
    $.fn.superfish = function (op) {
        var sf = $.fn.superfish,
            c = sf.c,
            $arrow = $(['<span class="', c.arrowClass, '"> &#187;</span>'].join('')),
            over = function () {
                var $$ = $(this),
                    menu = getMenu($$);
                clearTimeout(menu.sfTimer);
                $$.showSuperfishUl().siblings().hideSuperfishUl();
            },
            out = function () {
                var $$ = $(this),
                    menu = getMenu($$),
                    o = sf.op;
                clearTimeout(menu.sfTimer);
                menu.sfTimer = setTimeout(function () {
                    o.retainPath = ($.inArray($$[0], o.$path) > -1);
                    $$.hideSuperfishUl();
                    if (o.$path.length && $$.parents(['li.', o.hoverClass].join('')).length < 1) {
                        over.call(o.$path);
                    }
                }, o.delay)
            },
            getMenu = function ($menu) {
                var menu = $menu.parents(['ul.', c.menuClass, ':first'].join(''))[0];
                sf.op = sf.o[menu.serial];
                return menu;
            },
            addArrow = function ($a) {
                $a.addClass(c.anchorClass).append($arrow.clone());
            };
        return this.each(function () {
            var s = this.serial = sf.o.length;
            var o = $.extend({}, sf.defaults, op);
            o.$path = $('li.' + o.pathClass, this).slice(0, o.pathLevels).each(function () {
                $(this).addClass([o.hoverClass, c.bcClass].join(' ')).filter('li:has(ul)').removeClass(o.pathClass);
            });
            sf.o[s] = sf.op = o;
            $('li:has(ul)', this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over, out).each(function () {
                if (o.autoArrows) addArrow($('>a:first-child', this));
            }).not('.' + c.bcClass).hideSuperfishUl();
            var $a = $('a', this);
            $a.each(function (i) {
                var $li = $a.eq(i).parents('li');
                $a.eq(i).focus(function () {
                    over.call($li);
                }).blur(function () {
                    out.call($li);
                })
            });
            o.onInit.call(this);
        }).each(function () {
            var menuClasses = [c.menuClass];
            if (sf.op.dropShadows && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
            $(this).addClass(menuClasses.join(' '));
        })
    };
    var sf = $.fn.superfish;
    sf.o = [];
    sf.op = {};
    sf.IE7fix = function () {
        var o = sf.op;
        if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity != undefined) this.toggleClass(sf.c.shadowClass + '-off')
    };
    sf.c = {
        bcClass: 'sf-breadcrumb',
        menuClass: 'sf-js-enabled',
        anchorClass: 'sf-with-ul',
        arrowClass: 'sf-sub-indicator',
        shadowClass: 'sf-shadow'
    };
    sf.defaults = {
        hoverClass: 'sfHover',
        pathClass: 'overideThisToUse',
        pathLevels: 1,
        delay: 800,
        animation: {
            opacity: 'show'
        },
        speed: 'normal',
        autoArrows: true,
        dropShadows: true,
        disableHI: false,
        onInit: function () {},
        onBeforeShow: function () {},
        onShow: function () {},
        onHide: function () {}
    };
    $.fn.extend({
        hideSuperfishUl: function () {
            var o = sf.op,
                not = (o.retainPath === true) ? o.$path : '';
            o.retainPath = false;
            var $ul = $(['li.', o.hoverClass].join(''), this).add(this).not(not).removeClass(o.hoverClass).find('>ul').hide().css('visibility', 'hidden');
            o.onHide.call($ul);
            return this;
        },
        showSuperfishUl: function () {
            var o = sf.op,
                sh = sf.c.shadowClass + '-off',
                $ul = this.addClass(o.hoverClass).find('>ul:hidden').css('visibility', 'visible');
            sf.IE7fix.call($ul);
            o.onBeforeShow.call($ul);
            $ul.animate(o.animation, o.speed, function () {
                sf.IE7fix.call($ul);
                o.onShow.call($ul);
            });
            return this;
        }
    })
});

(function ($) {
    $.fn.hoverIntent = function (f, g) {
        var cfg = {
            sensitivity: 7,
            interval: 100,
            timeout: 0
        };
        cfg = $.extend(cfg, g ? {
            over: f,
            out: g
        } : f);
        var cX, cY, pX, pY;
        var track = function (ev) {
                cX = ev.pageX;
                cY = ev.pageY;
            };
        var compare = function (ev, ob) {
                ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
                if ((Math.abs(pX - cX) + Math.abs(pY - cY)) < cfg.sensitivity) {
                    $(ob).unbind("mousemove", track);
                    ob.hoverIntent_s = 1;
                    return cfg.over.apply(ob, [ev]);
                } else {
                    pX = cX;
                    pY = cY;
                    ob.hoverIntent_t = setTimeout(function () {
                        compare(ev, ob);
                    }, cfg.interval)
                }
            };
        var delay = function (ev, ob) {
                ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
                ob.hoverIntent_s = 0;
                return cfg.out.apply(ob, [ev]);
            };
        var handleHover = function (e) {
                var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget;
                while (p && p != this) {
                    try {
                        p = p.parentNode
                    } catch (e) {
                        p = this
                    }
                }
                if (p == this) {
                    return false
                }
                var ev = jQuery.extend({}, e);
                var ob = this;
                if (ob.hoverIntent_t) {
                    ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t)
                }
                if (e.type == "mouseover") {
                    pX = ev.pageX;
                    pY = ev.pageY;
                    $(ob).bind("mousemove", track);
                    if (ob.hoverIntent_s != 1) {
                        ob.hoverIntent_t = setTimeout(function () {
                            compare(ev, ob)
                        }, cfg.interval)
                    }
                } else {
                    $(ob).unbind("mousemove", track);
                    if (ob.hoverIntent_s == 1) {
                        ob.hoverIntent_t = setTimeout(function () {
                            delay(ev, ob);
                        }, cfg.timeout)
                    }
                }
            };
        return this.mouseover(handleHover).mouseout(handleHover);
    }
})(jQuery);
