// JavaScript Documentfunction Eci_getElementsByClassName(cl,el){var retnode = [];var myclass = new RegExp('\\b'+cl+'\\b');var elem = document.getElementsByTagName(el);for (var i = 0; i < elem.length; i++) {var classes = elem[i].className;if (myclass.test(classes)) {retnode.push(elem[i]);}}return retnode;}; 

function trim (str){var str = str.replace(/^\s\s*/, ''),ws = /\s/,i = str.length;while (ws.test(str.charAt(--i)));return str.slice(0, i + 1);}

function in_array(needle, haystack, strict) {
//Checks if a value exists in an array
//+discuss at: http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_in_array/
//+version: 809.522
//+original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
//*example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']);
//*returns 1: true
var found = false, key, strict = !!strict;for (key in haystack) {if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)){found = true;break;}}return found;
}
// parseUri 1.2.2
// (c) Steven Levithan <stevenlevithan.com>
// MIT License
function parseUri (str) {
var o=parseUri.options,m=o.parser[o.strictMode ? "strict" : "loose"].exec(str),uri={},i=14;
while (i--) uri[o.key[i]] = m[i] || "";
uri[o.q.name] = {};uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {if ($1) uri[o.q.name][$1] = $2;});
return uri;
};
parseUri.options = {
strictMode: false,key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],q:{name:"queryKey",parser: /(?:^|&)([^&=]*)=?([^&]*)/g},
parser:{strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
	loose:  /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
}
};
// {{{ strip_tags
function strip_tags(str, allowed_tags) {
// Strip HTML and PHP tags from a string
// 
//+discuss at: http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_strip_tags/
//+version: 810.2110
//+original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
//+improved by: Luke Godfrey
//+input by: Pul
//+bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
//+bugfixed by: Onno Marsman
//+input by: Alex
//+bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
//*example 1: strip_tags('<p>Kevin</p> <br /><b>van</b> <i>Zonneveld</i>', '<i><b>');
//*returns 1: 'Kevin <b>van</b> <i>Zonneveld</i>'
//*example 2: strip_tags('<p>Kevin <img src="someimage.png" onmouseover="someFunction()">van <i>Zonneveld</i></p>', '<p>');
//*returns 2: '<p>Kevin van Zonneveld</p>'
//*example 3: strip_tags("<a href='http://kevin.vanzonneveld.net'>Kevin van Zonneveld</a>", "<a>");
//*returns 3: '<a href='http://kevin.vanzonneveld.net'>Kevin van Zonneveld</a>'
var key = '', tag = '', allowed = false;var matches = allowed_array = [];var allowed_keys = {};var replacer = function(search, replace, str) {return str.split(search).join(replace);};/*Build allowes tags associative array*/if(allowed_tags){allowed_array = allowed_tags.match(/([a-zA-Z]+)/gi);}str += '';/*Match tags*/matches = str.match(/(<\/?[^>]+>)/gi);/*Go through all HTML tags*/for (key in matches){if (isNaN(key)){/*IE7 Hack*/continue;}/*Save HTML tag*/html = matches[key].toString();allowed = false;for (k in allowed_array) {allowed_tag = allowed_array[k];i = -1;if (i != 0) { i = html.toLowerCase().indexOf('<'+allowed_tag+'>');}if (i != 0) { i = html.toLowerCase().indexOf('<'+allowed_tag+' ');}if (i != 0) { i = html.toLowerCase().indexOf('</'+allowed_tag);}if (i == 0) {allowed = true;break;}}if (!allowed) {str = replacer(html, "", str);/*Custom replace. No regexing*/}}return str;
}// }}}
//Cookie Functions
function get_Cookie(name){var nameEQ = name + "=";var ca = document.cookie.split(';');for(var i=0;i < ca.length;i++){var c=ca[i];while(c.charAt(0)==' '){c=c.substring(1,c.length);}if(c.indexOf(nameEQ)== 0){return unescape(c.substring(nameEQ.length,c.length));}}return "";}
function Set_Cookie(name,value,expires,path,domain,secure){var cookieString = name + "=" +escape(value)+( (expires) ? ";expires=" + expires.toGMTString():"")+((path)?";path="+path:"")+((domain)?";domain="+domain:"")+((secure) ? ";secure" : "");document.cookie = cookieString;} 
function deleteCookie (name) {var date = new Date();date.setTime(date.getTime()+(-1*24*60*60*1000));return Set_Cookie(name, "", date);}
function createCookie(name,value,expires){if(expires && !isNaN(parseInt(expires)) ) {var d = new Date();d.setDate(d.getDate()+ expires);var cookie_expire_date = d;Set_Cookie(name,value,cookie_expire_date,"/");} else {Set_Cookie(name,value,'',"/");}}
//Event Listeners
function addEvent(obj,type,fn){if(obj.attachEvent){obj['e'+type+fn]=fn;obj[type+fn]=function(){obj['e'+type+fn](window.event);};obj.attachEvent('on'+type,obj[type+fn]);}else{obj.addEventListener(type,fn,false);}}
function removeEvent(obj,type,fn){if(obj.detachEvent){obj.detachEvent('on'+type,obj[type+fn]);obj[type+fn]=null;}else{obj.removeEventListener(type,fn,false);}}

var ag_phoneTypesHash = new Hashtable();
var ag_phones_types = ['iPhone','Audiovox','Blackberry',
'HTC','Innostream','Kyocera',
'LG','Motorola','NEC',
'Nextel','Nokia','Palm',
'Panasonic','Pantech','Samsung',
'Sanyo','Sharp','Siemens',
'Sony Ericsson','TOSHIBA','Garmin',
'Microsoft','TerreStar','Sidekick',
'Dell','HP','Android'
];
var ag_phones_accessory_ids =  ['apple-accessories','audiovox-accessories','blackberry-accessories',
'htc-cell-phone-accessories', 'innostream', 'kyocera', 
'lg-accessories', 'motorola-accessories', 'nec', 
'nextel-accessories', 'nokia-accessories','treo-accessories',
'panasonic','pantech','samsung-accessories',
'sanyo-accessories','sharp','siemens',
'sony-ericsson-accessories','toshiba','garmin-accessories',
'microsoft-accessories','terrestar-accessories','sidekick-accessories',
'dell-accessories','hp-accessories','android-accessories'
];
var ag_phone_defaultImgs = ['yhst-3275490461959_2112_324868912','yhst-3275490461959_2112_324871470','yhst-3275490461959_2112_68353720',
'yhst-3275490461959_2112_324873704','yhst-3275490461959_2112_324875437','yhst-3275490461959_2112_68355469',
'yhst-3275490461959_2112_68357349','yhst-3275490461959_2112_68359262','yhst-3275490461959_2112_68361006',
'yhst-3275490461959_2112_68363390','yhst-3275490461959_2112_68365295','yhst-3275490461959_2112_324877208',
'yhst-3275490461959_2112_68367504','yhst-3275490461959_2112_324879640','yhst-3275490461959_2112_68369652',
'yhst-3275490461959_2125_1308205121','yhst-3275490461959_2112_68373911','yhst-3275490461959_2112_68371849',
'yhst-3275490461959_2112_68376000','yhst-3275490461959_2112_68377897','yhst-3275490461959_2113_9560741',
'yhst-3275490461959_2112_261647807','yhst-3275490461959_2114_593136575','yhst-3275490461959_2111_58658363',
'yhst-3275490461959_2113_309565121','yhst-3275490461959_2120_628646228','yhst-3275490461959_2125_1001689223'
];
 
for( i= 0; i < ag_phones_types.length;i++) {
 ag_phoneTypesHash.put(ag_phones_accessory_ids[i],{name:ag_phones_types[i],defaultImg:ag_phone_defaultImgs[i]});
}

var _hidePhoneViewedBox = false;  // set to true to hide the recently viewed phone on first visit
var _cookieLifeDays = 180;

function _checkPhoneTypePage() {
 var breadcrumbElm = Eci_getElementsByClassName('h3bread','h3');
 var _bcContent = breadcrumbElm[0].innerHTML;
 var _bcParts = _bcContent.split('&gt;');
 var _file = '';
 //Sub Category pages only
 if(_bcParts.length == 3) {
  //if(_bcParts.length == 2) {_urlParts = parseUri(window.location.href);_file = _urlParts.file.replace(/\.html/g,'');} else { 
   _urlParts = _bcParts[1].match(/<a href="(.+?)">/gi);
	 if(_urlParts) {
	 _mainCatUrl = trim(_urlParts[0].replace(/((<a href=")|">)/gi,''));
	 _file = _mainCatUrl.replace(/http:\/\/www.accessorygeeks.com\//g,'');_file = _file.replace(/\.html/g,'');
	 }
  //}
 }
 if(_file.length > 0 && ag_phoneTypesHash.get(_file)!=null){
   h1tag = Eci_getElementsByClassName('sect-name','h1');
	 if(h1tag.length > 0) {
		 _phoneImg = h1tag[0].parentNode.previousSibling.innerHTML;
		 if(_phoneImg!=''){
		 	_phoneImgPart = _phoneImg.match(/src="(.+?)"/g);
			_cImg = trim(_phoneImgPart[0].replace(/src=|"/gi,'')); // Category image
		 } else {
			 _objPhoneType = ag_phoneTypesHash.get(_file);
			 _cImg = 'http://ep.yimg.com/ca/I/'+_objPhoneType['defaultImg']; // default image
		 }
		 _cName = trim(h1tag[0].innerHTML);
		 if(_cName.length == 0){_cName = trim(_bcParts[2]);} 
		 _cName = trim(_cName.replace(/(Cell|[^i]Phone(s)?|Accessories(.+)?)/gi,''));
		 //_cUrl =_file+'.html';
		 _cUrl = window.location.href;
		 _thumb = get_Cookie('Eci_recentlyViewedPhoneImg');
		 if(_thumb != '__thumb' ) {
			deleteCookie('Eci_recentlyViewedPhoneName');  
			deleteCookie('Eci_recentlyViewedPhoneUrl');
			createCookie('Eci_recentlyViewedPhoneName',_cName,_cookieLifeDays);
			createCookie('Eci_recentlyViewedPhoneUrl',_cUrl,_cookieLifeDays);
		 }
		 deleteCookie('Eci_recentlyViewedPhoneImg'); 
		 createCookie('Eci_recentlyViewedPhoneImg',_cImg,_cookieLifeDays);
		 checkFirstTimeCookie();
	 }
 }
}

function checkFirstTimeCookie() {
 if(_hidePhoneViewedBox) {
	 var visitorCookie = get_Cookie('Eci_isFirstVisit');
	 var _initBoxDisplay = get_Cookie('Eci_initBoxDisplay');
	 if(visitorCookie == '') {
			createCookie('Eci_isFirstVisit',1,_cookieLifeDays);	
			createCookie('Eci_initBoxDisplay',1,'');
	 } else if(visitorCookie == 1 && _initBoxDisplay == '') {
			createCookie('Eci_isFirstVisit',2,_cookieLifeDays);	
	 }
 }
}

function setPhoneTypeCookie(e) {
	results = e.innerHTML.match(/<b>(.+?)<\/b>/gi);
	if(results) {
		var _cName = strip_tags(results[0]);
		_cName = trim(_cName.replace(/(Cell|[^i]Phone(s)?|Accessories(.+)?)/gi,''));
		var _cUrl = e.href;
		 deleteCookie('Eci_recentlyViewedPhoneName'); 
		 deleteCookie('Eci_recentlyViewedPhoneImg'); 
		 deleteCookie('Eci_recentlyViewedPhoneUrl');
	   createCookie('Eci_recentlyViewedPhoneName',_cName,_cookieLifeDays);
		 createCookie('Eci_recentlyViewedPhoneImg','__thumb',_cookieLifeDays);
		 createCookie('Eci_recentlyViewedPhoneUrl',_cUrl,_cookieLifeDays);		
		 checkFirstTimeCookie();
	}
	location.href = e.href;
}

function _setPhoneTypeThumbClick() {
	var _cPath = parseUri(window.location.href);
	var _cFile = _cPath.file.replace(/\.html/,'');
	var _cFound  = ag_phoneTypesHash.get(_cFile);
	if(_cFound !== null) {
		var _phoneItms = Eci_getElementsByClassName('product-title','a');
		if(_phoneItms.length > 0) {
			for(var j = 0 ; j < _phoneItms.length; j++) {
				_phoneItms[j].onclick = function () {setPhoneTypeCookie(this);return false;}
			}
		}
	} else {
		_checkPhoneTypePage();
	}
}

function wgt_phonetype_info(){
 var breadcrumbElm =Eci_getElementsByClassName('h3bread','h3');
 var _bcContent = breadcrumbElm[0].innerHTML;
 var _bcParts = _bcContent.split('&gt;');
 var _file = '';
 //Sub Category pages only
 if(_bcParts.length == 3) {
  //if(_bcParts.length == 2) {_urlParts = parseUri(window.location.href);_file = _urlParts.file.replace(/\.html/g,'');} else { 
   _urlParts = _bcParts[1].match(/<a href="(.+?)">/gi);
	 if(_urlParts) {
	 _mainCatUrl = trim(_urlParts[0].replace(/((<a href=")|">)/gi,''));
	 _file = _mainCatUrl.replace(/http:\/\/www.accessorygeeks.com\//g,'');_file = _file.replace(/\.html/g,'');
	 }
  //}
 }
 if(_file!='' && ag_phoneTypesHash.get(_file)!=null){
	var _cName = strip_tags(document.getElementById('section-h1').innerHTML);
	if(trim(_cName) == ''){
	  _cName = trim(_bcParts[_bcParts.length - 1]);
	}
	var _cName = trim(_cName.replace(/(Cell|[^i]Phone(s)?|Accessories(.+)?)/gi,''));	
	var _cUrl = window.location.href;
	var _cImg = document.getElementById('imgmain-section').src;
	if(_cImg.indexOf('blank.gif') != -1){
		_phInfo = ag_phoneTypesHash.get(_file);
		_cImg = 'http://ep.yimg.com/ca/I/'+_phInfo.defaultImg;
	}
	/*alert(_cName+'---------'+_cImg+'------'+_cUrl)*/
	deleteCookie('Eci_recentlyViewedPhoneName'); 
	deleteCookie('Eci_recentlyViewedPhoneImg'); 
	deleteCookie('Eci_recentlyViewedPhoneUrl');
	createCookie('Eci_recentlyViewedPhoneName',_cName,_cookieLifeDays);
	createCookie('Eci_recentlyViewedPhoneImg',_cImg,_cookieLifeDays);
	createCookie('Eci_recentlyViewedPhoneUrl',_cUrl,_cookieLifeDays);
	checkFirstTimeCookie(); 
 }
}

function _getAttr(elm,name){
 var attr = elm.attributes;
 var val = "";
 if(attr.length){
	for( var x = 0; x < attr.length; x++ ) {
		if( elm.attributes[x].nodeName.toLowerCase() == name ) {
			 val =	elm.attributes[x].nodeValue;
		}
	}
 }
 return val;
}

function _rvPhoneTypeBox(){
	var _lastViewedPhoneUrl = get_Cookie('Eci_recentlyViewedPhoneUrl');
	var _pName = get_Cookie('Eci_recentlyViewedPhoneName');
	var _pImg = get_Cookie('Eci_recentlyViewedPhoneImg'); 	
	var _showBox = true;		
	if(_visitorTrack){
		var firstTimeCookie = get_Cookie('Eci_isFirstVisit');var _initBoxDisplay = get_Cookie('Eci_initBoxDisplay');
		if(firstTimeCookie == 1 && _initBoxDisplay == 1) { _showBox = false;}	
	}
 if(_lastViewedPhoneUrl !='' && _showBox){
		var _elm = document.getElementById('rvPTypeInfo');
		var parentClass = _getAttr(_elm.parentNode,'class');
		if(parentClass == 'rightnav-box'){
		  var width='165';
		} else {
			var width='150';
		}		
		//UTM source variables 
		if(_lastViewedPhoneUrl.indexOf('?')== -1){
			var _utmTrack = '?utm_source=website&utm_medium=left+navigation&utm_term='+_pName+'&utm_campaign=cookie-phone-test';
		} else {
			var _utmTrack = '&utm_source=website&utm_medium=left+navigation&utm_term='+_pName+'&utm_campaign=cookie-phone-test';
		}
		_lastViewedPhoneUrl +=_utmTrack;
		
		ret = '<p style="margin: 0px; font-weight:bold; color: black; padding: 5px; text-align:center;">Most Recently Chosen Phone</p><table width="98%" style="margin:5px 0px 5px 0px;" cellpadding="0" cellspacing="0" border="0"><tr><td valign="top" align="center"><a onclick="SS.EventTrack.rp(\'phoneWdgtClik\',1);" href="'+_lastViewedPhoneUrl+'"><img src="'+_pImg+'" width="'+width+'"></a></td></tr><tr><td valign="top" align="center"><p style="margin:0;padding:0;margin-bottom:5px;"><a onclick="SS.EventTrack.rp(\'phoneWdgtClik\',1);" href="'+_lastViewedPhoneUrl+'" style="color:#1E3B87;">Shop '+_pName+' Accessories</a></p><p style="margin:0;padding:0;margin-bottom:5px;"><a onclick="SS.EventTrack.rp(\'phoneLinkClik\',1);" href="http://www.accessorygeeks.com/cellacc.html" style="font-size:10px;">Is this not your phone?</a></p></td></tr></table>';
		_elm.innerHTML = ret;
		_elm.style.display = 'block';		
	}
}

function getCellPhoneAccessoryInformation() {
  var _accessoryChargers = '';
	var _accessoryCases = '';
	var _accessoryScreenProtector = '';
	if(document.getElementById('ul_table')){
	var accessory_lists = document.getElementById('ul_table').getElementsByTagName('a');
	 for(i=0;i<accessory_lists.length;i++){
	   if(accessory_lists[i].href.indexOf('chargers.html')!= -1 || accessory_lists[i].href.indexOf('charger.html')!= -1) { 
		   _accessoryChargers = accessory_lists[i].href; 
       deleteCookie('Eci_recentlyViewedPhoneChargersUrl');
        createCookie('Eci_recentlyViewedPhoneChargersUrl',_accessoryChargers,_cookieLifeDays);
		 }
		 if(accessory_lists[i].href.indexOf('cases.html') != -1 ) {
			 if(accessory_lists[i].href.indexOf('plastic-cases.html') == -1 && accessory_lists[i].href.indexOf('silicon') == -1){
				 _accessoryCases = accessory_lists[i].href; 
         deleteCookie('Eci_recentlyViewedPhoneCasesUrl');
         createCookie('Eci_recentlyViewedPhoneCasesUrl',_accessoryCases,_cookieLifeDays);				 
			 }
		 }
		 if(accessory_lists[i].href.indexOf('screen-protectors.html') != -1) {
			 _accessoryScreenProtector = accessory_lists[i].href; 
         deleteCookie('Eci_recentlyViewedPhoneScreenProtectorUrl');
         createCookie('Eci_recentlyViewedPhoneScreenProtectorUrl',_accessoryScreenProtector,_cookieLifeDays);				 			 
		 }
	 }
	}
}
