// Rollovers...
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 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];}}
};

// Quick launch window....
function quickLaunch(addr,name,width,height) {
	var w = window.open(addr,name,'scrollbars=yes,width=' + width + ',height=' + height);
	if (w.opener == null) w.opener = window;
	w.opener.name = 'opener';
	w.focus();
};

function photoDetails(id) {
	quickLaunch('/view_image/?photos=' + id,'lpphoto',540,420);
};


function addToList(lstid, htm) {
	if (document.getElementById) {
		var itm = document.createElement('LI');
		itm.innerHTML = htm;
		document.getElementById(lstid).appendChild(itm);
	}
};

function getCookie(name) {
	var dc = document.cookie;
	var prefix = name + '=';
	var begin = dc.indexOf('; ' + prefix);
	if (begin == -1) {
		begin = dc.indexOf(prefix);
		if (begin != 0) {
			return null;
		}
	}
	else {
		begin += 2;
	}
	var end = document.cookie.indexOf(';',begin);
	if (end == -1) {
		end = dc.length;
	}
	return unescape(dc.substring(begin + prefix.length, end));
};

/* Calendar Page */
function hideAllCalMonths() {
	var c = document.getElementById( 'calendars' );
	if ( !c ) return false;

	var children = c.childNodes;
    for ( var i = 0 ; i < children.length ; i++ ) {
    	if ( children[ i ].style ) children[ i ].style.display = 'none';
    }

	return true;
};

function showCalMonth() {
	if ( !document.getElementById ) return false;

	// figure out which one to show
	var s = document.getElementById( 'month' );
	if ( !s ) return false;
	var k = s.options[ s.selectedIndex ].value;

	// hide all calendars
	if ( !hideAllCalMonths() ) return false;

	var c = document.getElementById( 'cal_' + k );
	if ( !c ) return false;

	c.style.display = 'block';
	return true;
};

/* Calendar (calendar.js) */
// Copyright 2005, MaxMo Technology
// Used here with permission (do not reporduce)
function none() {
	return undefined;
};

function fixYear(f) {
	var g = parseInt(f.value, 10);
	if (g) {
		if (g > 0 && g < 1000) {
			f.value = g + 1900;
		}
	}
};

function sumAttr(cobj,attr) {
	var r = 0;
	while (cobj) {
		r += cobj[attr];
		cobj = cobj.offsetParent;
	}
	return r;
};

function objPosLeft(cobj) {
	return sumAttr(cobj,'offsetLeft');
};

function objPosTop(cobj) {
	return sumAttr(cobj,'offsetTop');
};

var _calDiv;
var _calMonthNames = new Array("","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
var _calDays = new Array("S","M","T","W","T","F","S");

function hideAllSelect() {
	var sa = document.getElementsByTagName('SELECT');
	if (sa) {
		var i = 0;
		var maxi = sa.length;
		while (i < maxi) {
			if (sa[i].className != 'calshow') {
				sa[i].style.visibility = 'hidden';
			}
			i = i + 1;
		}
	}
};

function showAllSelect() {
	var sa = document.getElementsByTagName('SELECT');
	if (sa) {
		var i = 0;
		var maxi = sa.length;
		while (i < maxi) {
			if (sa[i].className != 'calshow') {
				sa[i].style.visibility = 'visible';
			}
			i = i + 1;
		}
	}
};

function daysinMonth(month,year) {
	if (month == 2) {
		if (((year/4, 10) - parseInt(year/4, 10)) == 0) {
			return 29;
		}
		return 28;
	}

	if (month == 4 || month == 6 || month == 9 || month == 11) {
		return 30;
	}

	return 31;
};

function setCalDate(fldID,month,day,year) {
	document.getElementById(fldID).value = month + '/' + day + '/' + year;
	cancelCal();
};

function cancelCal() {
	showAllSelect();
	_calDiv.style.display = 'none';
	_calDiv.style.visibility = 'hidden';
	_calDiv.style.left = '-500px';
	_calDiv.style.top = '-500px';
};

function drawCalendar(fldID,month,year) {
	var s, i, tempMonth, tempYear;

	month = parseInt(month, 10);
	year = parseInt(year, 10);

	tempMonth = month - 1;
	tempYear = year;

	if (tempMonth == 0) {
		tempMonth = 12;
		tempYear = tempYear - 1;
	}


	s = '<table border="0" cellpadding="2" cellspacing="1" width="100%"><tr> <td width="15%" align="center" bgcolor="#cccccc"><a href="#" onClick="drawCalendar(\'' + fldID + '\',' + tempMonth + ',' + tempYear + '); return false;">&lt;&lt;</a></td> ';

	s = s + '<td width="70%" colspan="5" align="center" bgcolor="#cccccc"><select name="calmon" id="calmon" onChange="drawCalendar(\'' + fldID + '\',this.options[this.selectedIndex].value,' + year + ');" class="calshow">';

	i = 1;
	while (i <= 12) {
		s = s + '<option value="' + i + '"';
		if (i == month) {
			s = s + ' selected';
		}
		s = s + '>' + _calMonthNames[i] + '</option>';
		i = i + 1;
	}

	s = s + '</select> <select name="calyear" id="calyear" onChange="drawCalendar(\'' + fldID + '\',' + month + ',this.options[this.selectedIndex].value);" class="calshow">';

	i = year - 8;
	while (i <= (year + 8)) {
		s = s + '<option value="' + i + '"';
		if (i == year) {
			s = s + ' selected';
		}
		s = s + '>' + i + '</option>';
		i = i + 1;
	}


	s = s + '</select></td> ';

	tempMonth = month + 1;
	tempYear = year;

	if (tempMonth == 13) {
		tempMonth = 1;
		tempYear = tempYear + 1;
	}

	s = s + '<td width="15%" align="center" bgcolor="#cccccc"><a href="#" onClick="drawCalendar(\'' + fldID + '\',' + tempMonth + ',' + tempYear + '); return false;">&gt;&gt;</a></td> </tr><tr> ';
	i = 0;
	while (i < 7) {
		s = s + '<td width="1';
		if (i == 0 || i == 6) {
			s = s + '5';
		}
		else {
			s = s + '4';
		}
		s = s + '%" bgcolor="#000099" align="center"><font color="#ffffff">' + _calDays[i] + '</font></td> ';
		i = i + 1;
	}
	s = s + '</tr>';

	var dt = new Date(year,month-1,1);

	var dow = dt.getDay();
	i = 0;
	while (i < dow) {
		if (i == 0) {
			s = s + '<tr> ';
		}
		s = s + '<td bgcolor="#ffffff">&nbsp;</td> ';
		i = i + 1;
	}

	var today = new Date();
	var todayMonth = today.getMonth() + 1;
	var todayYear = today.getYear() + 1900;
	var lt = -1;
	if (todayMonth == month && todayYear == year) {
		lt = today.getDate();
	}


	var days = daysinMonth(month,year);
	i = 1;
	while (i <= days) {
		if (dow == 0) {
			s = s + '<tr> ';
		}
		s = s + '<td bgcolor="#';
		if (i == lt) {
			s = s + 'ff9900';
		}
		else {
			s = s + 'ffff99';
		}
		s = s + '" align="center"><a href="#" onClick="setCalDate(\'' + fldID + '\',' + month + ',' + i + ',' + year + '); return false;">' + i + '</a></td> ';
		dow = dow + 1;
		if (dow == 7) {
			s = s + '</tr>';
			dow = 0;
		}
		i = i + 1;
	}
	if (dow > 0) {
		while (dow < 7) {
			s = s + '<td bgcolor="#ffffff">&nbsp;</td> ';
			dow = dow + 1;
		}
		s = s + '</tr>';
	}
	s = s + '</table><table cellspacing="1" cellpadding="2" width="100%"><tr> <td width="50%"><a href="#" onClick="drawCalendar(\'' + fldID + '\',' + todayMonth + ',' + todayYear + '); return false;"><img src="/images/calendar/today.gif" border="0" alt="Jump to today" /> Today</a></td> <td width="50%" align="right"><a href="#" onClick="cancelCal(); return false"><img src="/images/calendar/cancel.gif" border="0" /> Cancel</a></td> </tr></table>';



	_calDiv.innerHTML = s;
};

function showCalendar(fldID) {
	var fld;
	fld = document.getElementById(fldID);
	if (!fld) {
		return false;
	}

	if (!(_calDiv)) {
		_calDiv = document.createElement('DIV');
		_calDiv.id = 'cal';
		_calDiv.name = 'cal';
		_calDiv.style.position = 'absolute';
		_calDiv.style.overflow = 'hidden';
		_calDiv.style.border = '1px solid black';
		_calDiv.style.padding = '1px;';
		_calDiv.style.visibility = 'hidden';
		_calDiv.style.display = 'none';
		_calDiv.style.background = '#fff';

		document.body.appendChild(_calDiv);
	}

	_calDiv.style.top = (objPosTop(fld) + (1.2 * fld.offsetHeight)) + 'px';
	_calDiv.style.left = objPosLeft(fld) + 'px';

	if (fld.offsetWidth < 180) {
		_calDiv.style.width = '180px';
	}
	else {
		_calDiv.style.width = fld.offsetWidth + 'px';
	}

	var curdate = new Date();

	var curMonth = curdate.getMonth() + 1;
	var curYear = curdate.getYear();

	/* Parse the initial date */
	if (fld.value != '') {
		var val;
		val = fld.value;
		if (val.match(/^[01]?\d(\/|-)[0123]?\d(\/|-)(\d{2}|\d{4})$/)) {
			var prts = val.split(/\/|-/);
			curMonth = prts[0];
			curYear = prts[2];
		}
	}

	curMonth = parseInt(curMonth, 10);
	curYear = parseInt(curYear, 10);

	if (curYear < 100) {
		if (curYear < 50) {
			curYear = curYear + 2000;
		}
		else {
			curYear = curYear + 1900;
		}
	}
	if (curYear >= 100 && curYear < 200) {
		curYear = curYear + 1900;
	}

	drawCalendar(fldID,curMonth,curYear);

	hideAllSelect();

	_calDiv.style.display = '';
	_calDiv.style.visibility = 'visible';
};

// Store details
var initpckdt = false;

function initItemDetails() {
	var div = $( '#jqm_itemdetails' );
	div.css( 'overflow' , 'auto' ).css( 'height' , 520 ).css( 'width' , 600 ).css( 'margin-left' , -306 ).css( 'z-index' , 3500 );
	div.jqm( {
		closeClass:		'jqm_itm_close',
		trigger:		false,
		modal:			true
	} );

	initpckdt = true;
}

function showStoreItem( itemid ) {
	if ( !initpckdt ) initItemDetails();

	// show it
	$( '#jqm_itemdetails' ).html( '<table border="0" cellspacing="0" cellpadding="0" width="100%" height="100%"><tr><td valign="middle" align="center"><img src="/images/loading.gif" border="0" alt="Loading" /><br /><span style="color: #f90;">loading...</span></td></tr></table>' );
	$( '#jqm_itemdetails' ).jqmShow();

	var d = {
		itemid:		itemid,
		api:		'js',
		sessid:		getCookie( 'lp_sessid' )
	};

	$.ajax( {
		url:		'/store/item/',
		type:		'GET',
		data:		d ,
		dataType:	'html' ,
		error: 		function() {
			pss_loading = false;

			$( '#jqm_itemdetails' ).empty().append( '<p>Unable to load item details. Please make sure you are still connected to the internet. <a href="#" onclick="showStoreItem( ' + itemid + ' ); return false;">Click here</a> to retry.</p>' );
		} ,
		success: 	function( data ) {
			$( '#jqm_itemdetails' ).html( data );
		}
	} );
	
	return true;
}

function hideItemDetails() {
	$( '#jqm_itemdetails' ).jqmHide();
}

// Cart details

var initcartadd = false;
var initcartview = false;

function initCartView() {
	var div = $( '#jqm_cartview' );
	div.css( 'overflow' , 'auto' ).css( 'height' , 450 ).css( 'width' , 550 ).css( 'margin-left' , -231 ).css( 'z-index' , 4000 ).css( 'top' , '13%' );
	div.jqm( {
		closeClass:		'jqm_cview_close',
		trigger:		false,
		modal:			true
	} );

	initcartview = true;
}

function addToCart( add_itemid , quantity ) {
	if ( !initcartview ) initCartView();

	$( '#jqm_cartview' ).html( '<table border="0" cellspacing="0" cellpadding="0" width="100%" height="100%"><tr><td valign="middle" align="center"><img src="/images/loading.gif" border="0" alt="Loading" /><br /><span style="color: #f90;">loading...</span></td></tr></table>' ).jqmShow();

	var d = {
		itemid:		add_itemid,
		quant:		quantity,
		api:		'js',
		sessid:		getCookie( 'lp_sessid' )
	};

	$.ajax( {
		url:		'/cart/add/',
		type:		'GET',
		data:		d ,
		dataType:	'html' ,
		error: 		function() {
			$( '#jqm_cartview' ).empty().append( '<p>Unable to add item to your cart. Please make sure you are still connected to the internet. <a href="#" onclick="addToCart( ' + add_itemid + ' , \'' + quantity + '\' ); return false;">Click here</a> to retry.</p>' );
		} ,
		success: 	function( data ) {
			$( '#jqm_cartview' ).html( data );
		}
	} );
	
	return true;
}

function addForm( add_itemid , frm ) {
	if ( !initcartview ) initCartView();
	
	frm = $( frm );
	var flds = $( frm ).serializeArray();
	
	var d = {};
	jQuery.each( flds , function( i , fld ) { d[ fld.name ] = fld.value; } );
	d.quant = parseInt( d.quant );
	if ( !( d.quant > 0 ) ) d.quant = 1;
	d.itemid = add_itemid;
	d.api = 'js';
	d.sessid = getCookie( 'ip_sessid' );

	$( '#jqm_cartview' ).html( '<table border="0" cellspacing="0" cellpadding="0" width="100%" height="100%"><tr><td valign="middle" align="center"><img src="/images/loading.gif" border="0" alt="Loading" /><br /><span style="color: #f90;">loading...</span></td></tr></table>' ).jqmShow();
	
	$.ajax( {
		url:		'/cart/add/',
		type:		'GET',
		data:		d ,
		dataType:	'html' ,
		error: 		function() {
			$( '#jqm_cartview' ).empty().append( '<p>Unable to add item to your cart. Please make sure you are still connected to the internet. <a href="#" onclick="addToCart( ' + add_itemid + ' , \'' + quantity + '\' ); return false;">Click here</a> to retry.</p>' );
		} ,
		success: 	function( data ) {
			$( '#jqm_cartview' ).html( data );
		}
	} );
	
	return true;
}

function closeCart() {
	$( '#jqm_cartview' ).jqmHide();
}

function viewCart() {
	if ( !initcartview ) initCartView();

	$( '#jqm_cartview' ).html( '<table border="0" cellspacing="0" cellpadding="0" width="100%" height="100%"><tr><td valign="middle" align="center"><img src="/images/loading.gif" border="0" alt="Loading" /><br /><span style="color: #f90;">loading...</span></td></tr></table>' ).jqmShow();

	var d = {
		api:		'js',
		sessid:		getCookie( 'lp_sessid' )
	};

	$.ajax( {
		url:		'/cart/view/',
		type:		'GET',
		data:		d ,
		dataType:	'html' ,
		error: 		function() {
			$( '#jqm_cartview' ).empty().append( '<p>Unable to load your cart contents. Please make sure you are still connected to the internet. <a href="#" onclick="viewCart(); return false;">Click here</a> to retry.</p>' );
		} ,
		success: 	function( data ) {
			$( '#jqm_cartview' ).html( data );
		}
	} );

	// prevent link from firing
	return true;
}

function editQuantity( itemid , quantity ) {
	var new_quantity = prompt( 'Please enter a new quantity:' , quantity );
	if ( new_quantity ) {
		new_quantity = parseInt( new_quantity );
		if ( new_quantity > 0 ) {
			setQuantity( itemid , new_quantity );
		}
		else alert( 'Invalid quantity entered.' );
	}
}

function setQuantity( edit_cartitemid , new_quantity ) {
	//document.location = '/cart/modify/?cartitemid=' + edit_cartitemid + '&quant=' + new_quantity;
	if ( !initcartview ) initCartView();

	$( '#jqm_cartview' ).html( '<table border="0" cellspacing="0" cellpadding="0" width="100%" height="100%"><tr><td valign="middle" align="center"><img src="/images/loading.gif" border="0" alt="Loading" /><br /><span style="color: #f90;">loading...</span></td></tr></table>' ).jqmShow();

	var d = {
		cartitemid:	edit_cartitemid,
		quant:		new_quantity,
		api:		'js',
		sessid:		getCookie( 'lp_sessid' )
	};

	$.ajax( {
		url:		'/cart/modify/',
		type:		'GET',
		data:		d ,
		dataType:	'html' ,
		error: 		function() {
			$( '#jqm_cartview' ).empty().append( '<p>Unable to update your cart contents. Please make sure you are still connected to the internet. <a href="#" onclick="setQuantity( \'' + edit_cartitemid + '\' , \'' + new_quantity + '\' ); return false;">Click here</a> to retry.</p>' );
		} ,
		success: 	function( data ) {
			$( '#jqm_cartview' ).html( data );
		}
	} );

	// prevent link from firing
	return true;
}

function checkoutJumpStep( step ) {
	$( '#co_jump_step' ).val( step );
	$( '#co_jump_form' ).submit();
}