function GSI_Exception(msg,type){this.name='GSI_Exception';this.message=msg;this.type=!type?1:type;var ts=new Date(),_mthis=this;this.getName=function(){return _mthis.name};this.getType=function(){return _mthis.type};this.getMessage=function(){return _mthis.message};this.getTime=function(){return ts.toLocaleString()};this.toString=function(){return'Created on:'+_mthis.getTime()+'\nName: '+_mthis.getName()+'\nType: '+_mthis.getType()+'\nDescription: '+_mthis.getMessage()}}
function GSI_ErrorStack(){this._errors=new Array();var types=new Array(),_mthis=this;this.add=function(eDesc,eType){if(!GSI_DEBUG)return;var tError=new GSI_Exception(eDesc,eType);if(!GSI.functions.isset(eDesc))eDesc='';if(!GSI.functions.isset(eType))eType='';_mthis._errors.push(tError);if(typeof console!="undefined")switch(eType.toUpperCase()){case'ERROR':console.error(tError.toString());break;case'WARNING':console.warn(tError.toString());break;default:console.info(tError.toString());break};return true};this.resetErrors=function(){_mthis._errors=new Array()};this.toString=function(){var str='';for(anError in _mthis._errors)str+='\n'+_mthis._errors[anError].toString();return str};this.toArray=function(){return _mthis._errors}}
function GSI_Controller_ItemsCollection(padre){this.padre=padre;this.reset()};GSI_Controller_ItemsCollection.prototype.errorStack=new GSI_ErrorStack();GSI_Controller_ItemsCollection.prototype.setError=function(msg,type){this.errorStack.add(msg,type)};GSI_Controller_ItemsCollection.prototype.insert=function(item){return this.addItem(item)};GSI_Controller_ItemsCollection.prototype.addItem=function(item){_FLAG=false;var id;if(item instanceof GSI_Resource_Item){id=item.getData('id');_FLAG=true}else id=item;tItem=this.getItem(id);if(tItem&&!_FLAG)return false;if(!_FLAG){var factory=GSI.factories.getFactory('resource'),item=factory.createItem();item.setData('id',id);this.setError('Item created with resId'+item.resId,'INFO')};this._initializeItem(item);this.items[id]=item;return true};GSI_Controller_ItemsCollection.prototype._initializeItem=function(item){};GSI_Controller_ItemsCollection.prototype.removeItem=function(item){var id=0;if(item instanceof GSI_Resource_Item){id=item.getData('id');if(this.items[id]){delete this.items[id];return true}else return false}else if(this.items[item]){delete this.items[item];return true}else return false;return true};GSI_Controller_ItemsCollection.prototype.getItems=function(){return this.items};GSI_Controller_ItemsCollection.prototype.getNextItem=function(){if(!GSI.functions.isset(GSI.activeItem))return false;var flag=false;for(var anId in this.items){if(anId=='indexOf')continue;if(flag)return this.items[anId];if(this.items[anId].getData('id')==GSI.activeItem.getData('id'))flag=true};return false};GSI_Controller_ItemsCollection.prototype.getPreviousItem=function(){if(!GSI.functions.isset(this.xsellNav))return false;if(!GSI.functions.isset(GSI.activeItem))return false;var flag=false;for(var index=GSI.functions.count(this.items)-1;index>=0;index--){element=GSI.functions.getElementFromArray(this.items,index);if(flag)return element;if(element&&element.getData('id')==GSI.activeItem.getData('id'))flag=true};return false};GSI_Controller_ItemsCollection.prototype.getItem=function(ID){for(anItem in this.items){if(anItem=='indexOf')continue;if(!(this.items[anItem] instanceof GSI_Resource_Item))continue;var res=false;if(res=this.items[anItem].getItem(ID))return res};return false};GSI_Controller_ItemsCollection.prototype.getResource=function(resId){for(anItem in this.items){if(anItem=='indexOf')continue;if(!(this.items[anItem] instanceof GSI_Resource_Item))continue;if(res=this.items[anItem].getResource(resId))return res};return false};GSI_Controller_ItemsCollection.prototype.reset=function(){this.items=new Array();this.data={}}
function GSI_Controller_ItemsCollection_BasketXsells(padre){this.padre=padre;this.reset()};GSI_Controller_ItemsCollection_BasketXsells.prototype=new GSI_Controller_ItemsCollection();GSI_Controller_ItemsCollection_BasketXsells.prototype._initializeItem=function(item){item.isBasketXsell=true}
function GSI_Controller_ItemsCollection_ItemXsells(padre){this.padre=padre;this.reset()};GSI_Controller_ItemsCollection_ItemXsells.prototype=new GSI_Controller_ItemsCollection();GSI_Controller_ItemsCollection_ItemXsells.prototype._initializeItem=function(item){item.isXsell=true}
function GSI_Controller_ItemsCollection_ItemRVP(padre){this.padre=padre;this.reset()};GSI_Controller_ItemsCollection_ItemRVP.prototype=new GSI_Controller_ItemsCollection();GSI_Controller_ItemsCollection_ItemRVP.prototype._initializeItem=function(item){item.t_type='rvp'}
function GSI_Controller_ItemsCollection_Basket(padre){this.padre=padre;this.reset()};GSI_Controller_ItemsCollection_Basket.prototype=new GSI_Controller_ItemsCollection();GSI_Controller_ItemsCollection_Basket.prototype.addItem=function(item){var id=0;if(item instanceof GSI_Resource_Item){id=item.getData('id');this.items.push(item);return true};return false}
function GSI_Controller_ItemsCollection_SearchEngine(padre){this.padre=padre;this.reset()};GSI_Controller_ItemsCollection_SearchEngine.prototype=new GSI_Controller_ItemsCollection();GSI_Controller_ItemsCollection_SearchEngine.prototype._initializeItem=function(item){item.t_type='src'}
function GSI_Resource(){this.resId=parseInt(Math.random()*Math.random()*1000000);this.data;this.loadSteps=0;this.errorStack=new GSI_ErrorStack();this.loaded;var _mthis=this;this.getResource=function(resId){return _mthis.resId==resId?_mthis:false};this.fetch=function(){return new Array()};this.restore=function(){return true};this.setError=function(msg,type){this.errorStack.add(msg,type)};this.getSID=function(){return GSI.getSID()};this.setDataFromJSON=function(data){if(!GSI.functions.isset(data))return true;try{this.data=JSON.parse(data);return true}catch(e){GSI.setError('Invalid JSON response.\n Data : '+data+'\n'+e.message,'ERROR');return false}};this.getLoadSteps=function(){return _mthis.loadSteps};this.getTrackingLines=function(provider){try{return this.data.tracking_eval[provider]}catch(e){return new Array()}};this.request=function(fileName,dataStr,callback,innerCallback,method,errCallback){if(!innerCallback)innerCallback=function(){};if(!callback)callback=function(){};if(!errCallback)errCallback=function(){};var str=fileName,tArrParms=new Array();if(dataStr!=null){str+="?"+dataStr;tArrParms=dataStr.split('=')};var xmlhttp;try{xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")}catch(e){try{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")}catch(oc){xmlhttp=null}};if(!xmlhttp&&typeof XMLHttpRequest!="undefined")xmlhttp=new XMLHttpRequest();if(!xmlhttp)this.setError("Your browser does not support AJAX",'ERROR');if(method=='POST'){xmlhttp.open('POST',fileName,true);xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");xmlhttp.setRequestHeader("Content-length",tArrParms.length);xmlhttp.setRequestHeader("Connection","close")}else{xmlhttp.open('GET',str,true);xmlhttp.setRequestHeader('Content-Type','application/json');dataStr=null};xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4)if(parseInt(xmlhttp.status)>=200&&parseInt(xmlhttp.status)<500){innerCallback(xmlhttp.responseText);if(parseInt(xmlhttp.status)>=300&&parseInt(xmlhttp.status)<500)if(errCallback instanceof Function){errCallback(xmlhttp.responseText);xmlhttp=null;return};if(callback instanceof Function)callback(xmlhttp.responseText);xmlhttp=null;return}else{GSI.setError('There was a problem when communicating with the server.\n XMLHttp Status : '+xmlhttp.status,'ERROR');return}};xmlhttp.send(dataStr);return xmlhttp}}
function GSI_Resource_Basket(){this.resId=parseInt(Math.random()*Math.random()*1000000);var _mthis=this;this.collection=new GSI_Controller_ItemsCollection_Basket();this.xsells=new GSI_Controller_ItemsCollection_BasketXsells();this.loaded=null;this.data=null;this.getResource=function(resId){if(_mthis.resId==resId)return _mthis;for(anItem in _mthis.data.items){if(anItem=='indexOf')continue;if(!(_mthis.data[anItem] instanceof GSI_Resource_Item))continue;if(res=_mthis.data.items[anItem].getResource(resId))return res};if(res=_mthis.xsells.getResource(resId))return res;return false};this.fetch=function(){return new Array()};this.restore=function(){return true};this.getItem=function(Id){for(anItem in _mthis.items){if(anItem=='indexOf')continue;if(!(_mthis.items[anItem] instanceof GSI_Resource_Item))continue;var res=false;if(res=_mthis.items[anItem].getItem(Id))return res};if(res=_mthis.xsells.getItem(Id))return res;return false};this.init=function(){resetData()};this.add=function(prd,callback,errCallback){var optSku=prd.getOptionSku();if(!optSku)return false;if(!insert(prd))return false;URL=GSI_SERVICE_PATH+"basket/"+_mthis.getSID()+".json";data='sku='+escape(optSku)+'&qty='+prd.quantity+'&t_type='+prd.getData('t_type');_mthis.request(URL,data,callback,retrieveFeedback,'POST',errCallback);return true};var addFeedback=function(res){};this.remove=function(prd,callback){if(!(prd instanceof GSI_Resource_Item))return false;if(!(_mthis.getItemByOptionSku(prd.getOptionSku())))return false;URL=GSI_SERVICE_PATH+"basket/"+_mthis.getSID()+"/lines/"+_mthis.getLineNumber(prd)+".json";_mthis.request(URL+'?_method=DELETE',data,callback,retrieveFeedback,'POST');return true};this.modify=function(lineNum,prd,callback){var tItem=_mthis.getItemByLineNumber(lineNum);if(!tItem)return false;if(tItem.getData('id')!=prd.getData('id'))return false;URL=GSI_SERVICE_PATH+"basket/"+_mthis.getSID()+"/lines/"+_mthis.getLineNumber(prd)+".json";data='sku='+prd.getOptionSku()+'&qty='+prd.quantity;_mthis.request(URL,data+'&_method=PUT',callback,retrieveFeedback,'POST');return true};this.retrieve=function(callback){var errFeedback=function(httpReq){_mthis.data={error:"basket not found"};_mthis.loaded=true;if(callback instanceof Function)callback()};URL=GSI_SERVICE_PATH+"basket/"+_mthis.getSID()+".json?"+new Date().valueOf();data=null;resetData();try{_mthis.request(URL,data,callback,retrieveFeedback,'GET',errFeedback)}catch(e){_mthis.setError('error'+e.message,'ERROR')};return true};var retrieveFeedback=function(res){try{if(!GSI.functions.isset(res)){_mthis.loaded=true;return true};resetData();_mthis.data=JSON.parse(res);for(var index in _mthis.data['LINES']){if(index=='indexOf')continue;var factory=GSI.factories.getFactory('resource'),tItem=factory.createItem(),optSku=_mthis.data['LINES'][index]['sku'],optId=_mthis.data['LINES'][index]['optionid'],itemSku=_mthis.data['LINES'][index]['item_sku'];tItem.setData('id',itemSku);tItem.data.options[optId]={PROPERTIES:_mthis.data['LINES'][index]['PROPERTIES'],sku:optSku};tItem.inBasket=true;tItem.quantity=_mthis.data['LINES'][index]['quantity'];tItem.basket_line=_mthis.data['LINES'][index]['lineposition'];insert(tItem)};_mthis.loaded=true}catch(e){_mthis.setError('Error setting the data.\nData : '+data+'\n'+e.message,'ERROR');_mthis.data={error:"basket not found"};_mthis.loaded=true;return false}};this.loadLine=function(lineNum,callback){var tItem=_mthis.getItemByLineNumber(lineNum);if(!tItem)return false;tItem.retrieveOption(callback);return true};this.loadLines=function(callback){var queue=new Array();for(var anItem in _mthis.items){if(anItem=='indexOf')continue;queue.push(anItem)}
function load(){var tIndex=queue.shift();if(!tIndex){callback();return true};var tItem=_mthis.items[tIndex];return tItem.retrieveOption(load)};return load()};this.getXsells=function(callback){var xsellFeedBack=function(data){try{var tData=JSON.parse(data);_mthis.xsells.xsellNav=true;if(GSI.functions.count(tData)<=1&&tData.message){callback();return};_mthis.xsells.data=GSI.functions.array_merge(_mthis.xsells.data,tData);for(var aXsell in _mthis.xsells.data.xsell.response.docs){if(aXsell=='indexOf')continue;var factory=GSI.factories.getFactory('resource'),tItem=factory.createItem();tItem.setData('id',_mthis.xsells.data.xsell.response.docs[aXsell]['manufacturer_sku']);tItem.predata=_mthis.xsells.data.xsell.response.docs[aXsell];tItem.resetFilters();_mthis.xsells.addItem(tItem)}}catch(e){_mthis.setError('Error setting the data.\nData : '+data+'\n'+e.message,'ERROR');return false}},item=GSI.activeItem,URL=GSI_SERVICE_PATH+"items/"+item.getData('id')+"/xsells/xsell.json";_mthis.request(URL,null,callback,xsellFeedBack,'GET');return true};var insert=function(item){return _mthis.collection.addItem(item)},resetData=function(){_mthis.data={};_mthis.collection=new GSI_Controller_ItemsCollection_Basket();_mthis.loaded=false;return true};this.getNextItem=function(){return _mthis.collection.getNextItem()};this.getPreviousItem=function(){return _mthis.collection.getPreviousItem()};this.getLineNumber=function(item){if(!(item instanceof GSI_Resource_Item))return false;var lineNum=item.basket_line;if(lineNum)return lineNum;return false};this.getItemByLineNumber=function(lineNum){var items=_mthis.collection.getItems();for(var anItem in items){if(anItem=='indexOf')continue;if(items[anItem].basket_line==lineNum)return items[anItem]};return false};this.getItemByOptionSku=function(optSku){var items=_mthis.collection.getItems();for(var anItem in items){if(anItem=='indexOf')continue;if(items[anItem].getOptionSku()==optSku)return items[anItem]};return false};this.getData=function(tag){try{switch(tag){case'num_items':return _mthis.data.num_items;case'subtotal':return _mthis.data.subtotal;case'subtotal_gross':return _mthis.data.subtotal_gross;case'grandtotal':return _mthis.data.grandtotal;case'currencyid':return _mthis.data.currencyid;case'shippingfull':return _mthis.data.shipping.full;default:return _mthis.loaded?_mthis.data[tag]:_mthis.predata[tag]?_mthis.predata[tag]:"undefined"}}catch(e){return _mthis.data[tag]}};this.init()};GSI_Resource_Basket.prototype=new GSI_Resource()
function GSI_Resource_Dictionary(){this.resId=parseInt(Math.random()*Math.random()*1000000);this.loadSteps=2;var _mthis=this;this.data=null;this.loaded=null;this.getResource=function(resId){if(_mthis.resId==resId)return _mthis;return false};this.fetch=function(){return new Array()};this.restore=function(){return true};this.getLoadSteps=function(){return _mthis.loadSteps};this.init=function(){resetData()};this.getPage=function(pageName){if(!_mthis.data[pageName]||_mthis.data[pageName]['preloaded'])return false;return _mthis.data[pageName]};this.addPage=function(pagename){if(!_mthis.getPage(pagename)){_mthis.data[pagename]=new Array();_mthis.data[pagename]['preloaded']=true;return true};return false};this.addTranslations=function(translations){for(var aPage in translations)_mthis._addTranslation(aPage,translations[aPage]);return false};this._addTranslation=function(pagename,tranlations){_mthis.data[pagename]=GSI.functions.array_merge(_mthis.data[pagename],tranlations)};this.getText=function(pagename,key){var tPage=_mthis.getPage(pagename);if(!tPage){return'{'+pagename+'.'+key+'}'}else if(!tPage[key]){return'['+pagename+'.'+key+']'}else return tPage[key]};this.retrievePages=function(callback,pagenames){var retrieveFeedback=function(res){try{if(!GSI.functions.isset(res)){_mthis.loaded=true;return true};var tData=JSON.parse(res);if(!tData)tData={};_mthis.addTranslations(tData);_mthis.loaded=true;GSI.updateProgressBar('Dictionary entries loaded succesfully')}catch(e){_mthis.setError('Error setting the data.\nData : '+data+'\n'+e.message,'ERROR');GSI.updateProgressBar('ERROR loading Dictionary entries');return false}};GSI.updateProgressBar('Loading dictionary entries');URL=GSI_SERVICE_PATH+"dict.json";var data='pages=';if(!pagenames){var _first=true;for(var aPage in _mthis.data){if(aPage=='indexOf')continue;if(_mthis.data[aPage]['preloaded']){var cachedPage=GSI.cache.get('dict_'+aPage);if(cachedPage){_mthis.data[aPage]=JSON.parse(cachedPage);_mthis.data[aPage]['preloaded']=false;continue};if(_first){data+=aPage;_first=false}else data+=','+aPage}}}else data+=pagenames;if(_first){_mthis.loaded=true;GSI.updateProgressBar('Dictionary entries loaded succesfully');callback();return true};data+="&ts="+new Date().valueOf();try{_mthis.request(URL,data,callback,retrieveFeedback,'GET')}catch(e){_mthis.setError('error'+e.message,'ERROR')};return true};var resetData=function(){_mthis.data={};_mthis.loaded=false;return true};this.init()};GSI_Resource_Dictionary.prototype=new GSI_Resource()
function GSI_Resource_Item(){this.init()};GSI_Resource_Item.prototype=new GSI_Resource();GSI_Resource_Item.prototype.resId=null;GSI_Resource_Item.prototype.data=null;GSI_Resource_Item.prototype.predata=null;GSI_Resource_Item.prototype.xsells=null;GSI_Resource_Item.prototype.isXsell=null;GSI_Resource_Item.prototype.t_type=null;GSI_Resource_Item.prototype._activeView=null;GSI_Resource_Item.prototype.activeViewName=null;GSI_Resource_Item.prototype.filters=null;GSI_Resource_Item.prototype.quantity=null;GSI_Resource_Item.prototype.loaded=null;GSI_Resource_Item.prototype.availProperties=null;GSI_Resource_Item.prototype.getResource=function(resId){if(this.resId==resId)return this;if(this.xsells.xsellNav)for(anItem in this.xsells.items){if(anItem=='indexOf')continue;if(!(this.xsells.items[anItem] instanceof GSI_Resource_Item))continue;if(res=this.xsells.items[anItem].getResource(resId))return res};return false};GSI_Resource_Item.prototype.fetch=function(){var tRes=new Array();tRes.filters=GSI.functions.cloneObject(this.filters);tRes.quantity=this.quantity;tRes.resId=this.resId;tRes.resource=this;return tRes};GSI_Resource_Item.prototype.restore=function(data){if(!data)return false;try{if(data.resId!=this.resId)return false;this.filters=data.filters;this.quantity=data.quantity;this.refreshAvailableProperties()}catch(e){this.setError('Could not restore properly. resId -> '+this.resId,'ERROR');return false};return true};GSI_Resource_Item.prototype.init=function(){this._resetData()};GSI_Resource_Item.prototype.refreshAvailableProperties=function(){var tArray=this.filter();this.availProperties=new Array();for(var i in tArray){if(i=='indexOf')continue;for(var j in tArray[i].PROPERTIES){if(j=='indexOf')continue;if(j=='PRIMARY_COLOR')continue;this._addProperty(j,tArray[i].PROPERTIES[j])}};this._sortAvailableProperties();$(this).trigger('refresh')};GSI_Resource_Item.prototype.getPropertyAvailability=function(key){if(!this.loaded)return this.predata[key];if(this.filters[key]==''||this.filters[key]==null||this.filters[key]==undefined)return this.availProperties[key];var tArray=this.filter(key),res=new Array();for(var i in tArray){if(i=='indexOf')continue;for(var j in tArray[i].PROPERTIES){if(j=='indexOf')continue;if(j=='PRIMARY_COLOR')continue;if(key&&j!=key)continue;var k=j,v=tArray[i].PROPERTIES[j];for(var i in res[k]){if(i=='indexOf')continue;if(res[k][i]==v)continue};if(!res[k])res[k]=new Array();res[k].push(v)}};return res[k]};GSI_Resource_Item.prototype._addProperty=function(k,v){for(var i in this.availProperties[k]){if(i=='indexOf')continue;if(this.availProperties[k][i]==v)return false};if(!this.availProperties[k])this.availProperties[k]=new Array();this.availProperties[k].push(v)};GSI_Resource_Item.prototype._sortAvailableProperties=function(){var tAvailProp=new Array();for(var aProp in this.data.PROPERTIES){if(aProp=='indexOf')continue;if(aProp=='PRIMARY_COLOR')continue;if(this.availProperties[aProp]){tAvailProp[aProp]=new Array()}else continue;for(var index in this.data.PROPERTIES[aProp])if(GSI.functions.in_array(this.data.PROPERTIES[aProp][index],this.availProperties[aProp]))tAvailProp[aProp].push(this.data.PROPERTIES[aProp][index])};this.availProperties=tAvailProp;return tAvailProp};GSI_Resource_Item.prototype.filter=function(byPassKey){var res=new Array();if(this.data['type_']=='BUNDLE')return res;var flag=false;for(var anId in this.data.options){if(anId=='indexOf')continue;if(this._filterOption(this.data.options[anId],byPassKey)){res[anId]=this.data.options[anId];flag=true}};if(!flag){return false}else return res};GSI_Resource_Item.prototype._filterOption=function(opt,byPassKey){for(var optName in this.filters){if(optName=='indexOf')continue;if(this.filters[optName]==''||this.filters[optName]==null||this.filters[optName]==undefined)continue;if(optName==byPassKey)continue;if(opt.PROPERTIES[optName]!=this.filters[optName])return false};return true};GSI_Resource_Item.prototype.resetFilters=function(){this.filters=new Array();var def_color=this.getData('default_color');if(def_color&&def_color!="undefined")this.addFilter('COLOR',def_color);this.refreshAvailableProperties()};GSI_Resource_Item.prototype.addFilter=function(name,value){this.filters[name]=value};GSI_Resource_Item.prototype.removeFilter=function(name){try{delete this.filters[name];return true}catch(e){return false};return false};GSI_Resource_Item.prototype.getItem=function(ID){if((ID==this.getData('id')))return this;return this.xsells.getItem(ID)};GSI_Resource_Item.prototype.getData=function(tag){try{switch(tag){case'id':return this.data.manufacturer_sku;case'name':return this.loaded?this.data['content']['INFO']['name']:this.predata['name']?this.predata['name']:"undefined";case'description':return this.loaded?this.data.content.INFO['desc_short']:this.predata['shortdesc']?this.predata['shortdesc']:"undefined";case'orgprice':if(this.loaded){return this.data.PRICE.originaldisplayprice?this.data.PRICE.originaldisplayprice:this.data.PRICE.displayprice?this.data.PRICE.displayprice:"undefined"}else return this.predata['originaldisplayprice']?this.predata.originaldisplayprice:this.predata['displayprice']?this.predata.displayprice:"undefined";case'offrprice':if(this.loaded){return this.data.PRICE.savings_display?this.data.PRICE.displayprice:false}else return this.predata['originaldisplayprice']?this.predata.displayprice:false;case'savings_percentage':return this.loaded?this.data.PRICE['savings_percentage']:this.predata['savings_percentage']?this.predata['savings_percentage']:"undefined";case'default_color':if(this.loaded){var def_color=this.data.content.INFO['default_color'];if(def_color&&GSI.functions.in_array(def_color,this.data['PROPERTIES']['COLOR'])){return this.data.content.INFO['default_color']}else return this.data['PROPERTIES']['COLOR'][0]}else return this.predata['default_color']?this.predata['default_color']:"undefined";case'currencyid':return this.loaded?this.data.PRICE['currencyid']:this.predata['currencyid']?this.predata['currencyid']:"undefined";case'url':var type=this.getData('t_type');if(type){var xsell='&t_type='+type}else var xsell='';var tURL=this.data['url']?this.data['url']:this.predata['url']?this.predata['url']:'#';return tURL+xsell;case't_type':switch(true){case this.isXsell:return'pxs';break;case this.isBasketXsell:return'cxs';break;default:return this.t_type};case'video':return this.data.content.INFO['video']?this.data.content.INFO['video']:false;default:return this.loaded?this.data[tag]:this.predata[tag]?this.predata[tag]:"undefined"}}catch(e){return this.data[tag]}};GSI_Resource_Item.prototype.setData=function(tag,value){if(tag=='id'){this.data.manufacturer_sku=value}else this.data[tag]=value};GSI_Resource_Item.prototype.getImage=function(size){if(!this.loaded){if(this.predata['image_main_'+size]){var selected_color=this.filters['COLOR']?this.filters['COLOR']:this.predata['default_color'];for(var aColorIndex in this.predata['COLOR']){if(aColorIndex=='indexOf')continue;if(this.predata['COLOR'][aColorIndex]==selected_color)break};return GSI_CATALOG_IMG_PATH+size+'/'+this.predata['image_main_'+size][aColorIndex]};return this.predata['image_'+size]?GSI_CATALOG_IMG_PATH+size+'/'+this.predata['image_'+size][0]:GSI_CATALOG_IMG_PATH+size+'/notavailable.gif'};if(!this._activeView)this.setView('main');try{var default_color=this.data['content']['INFO']['default_color'];default_color=default_color?default_color:this.availProperties['COLOR'][0];var color=this.filters['COLOR']?this.filters['COLOR']:default_color;if(this.data['type_']=='BUNDLE')color='BUNDLE';return GSI_CATALOG_IMG_PATH+size+'/'+this._activeView[size][color].name}catch(e){if(size.toLowerCase()=='zoom')return false;return GSI_CATALOG_IMG_PATH+size+'/notavailable.gif'}};GSI_Resource_Item.prototype.hasImage=function(size){var image=this.getImage(size);if(!image||image.indexOf('notavailable.gif')!=-1){return false}else return true};GSI_Resource_Item.prototype.setView=function(viewname){if(!this.loaded)return false;try{if(!GSI.functions.isset(this.data.content.IMG.aview)){this._activeView=this.data.content.IMG;this.activeViewName='main';return true};for(var aViewname in this.data.content.IMG.aview)if(aViewname==viewname){this._activeView=this.data.content.IMG.aview[viewname];this.activeViewName=viewname;return true};this._imageView=this.data.content.IMG.aview['main'];this.activeViewName='main';return true}catch(e){this.activeViewName='main';return true}};GSI_Resource_Item.prototype.retrieve=function(callback){var _mthis=this,retrieveFb=function(res){if(_mthis.setDataFromJSON(res)){_mthis.loaded=true;_mthis.resetFilters()}};this.loaded=false;var data=new Array(),t_type=this.getData('t_type');if(t_type)data.push('t_type='+t_type);if(GSI.partner)data.push('p='+GSI.partner);var URL=GSI_SERVICE_PATH+"items/"+this.getData('id')+".json";this.request(URL,data.join('&'),callback,retrieveFb,'GET');return true};GSI_Resource_Item.prototype.getXsells=function(callback){var _mthis=this,xsellFeedBack=function(data){try{var tData=JSON.parse(data);_mthis.xsells.xsellNav=true;if(GSI.functions.count(tData)<=1&&tData.message){callback();return};_mthis.xsells.data=GSI.functions.array_merge(_mthis.xsells.data,tData);for(var aXsell in _mthis.xsells.data.xsell.response.docs){if(aXsell=='indexOf')continue;var factory=GSI.factories.getFactory('resource'),tItem=factory.createItem();tItem.setData('id',_mthis.xsells.data.xsell.response.docs[aXsell]['manufacturer_sku']);tItem.predata=_mthis.xsells.data.xsell.response.docs[aXsell];tItem.resetFilters();_mthis.xsells.addItem(tItem)}}catch(e){_mthis.setError('Error setting the data.\nData : '+data+'\n'+e.message,'ERROR');return false}},sku=this.getData('id');if(typeof (sku)=='undefined'){GSI.setError('There is no ID defined for the item to get the Xsells','WARNING');return false};var data=new Array();if(GSI.partner)data.push('p='+GSI.partner);var URL=GSI_SERVICE_PATH+"items/"+sku+"/xsells/xsell.json";this.request(URL,data.join('&'),callback,xsellFeedBack,'GET');return true};GSI_Resource_Item.prototype.insert=function(item){var id=0;if(item instanceof GSI_Resource_Item){id=item.getData('id');item.isXsell=true;this.xsells[id]=item;return true};return false};GSI_Resource_Item.prototype.getNextItem=function(){if(!GSI.functions.isset(this.xsells.xsellNav))return false;return this.xsells.getNextItem()};GSI_Resource_Item.prototype.getPreviousItem=function(){if(!GSI.functions.isset(this.xsellNav))return false;return this.xsells.getPreviousItem()};GSI_Resource_Item.prototype.retrieveOption=function(callback){var _mthis=this,retrieveFb=function(res){if(_mthis.setDataFromJSON(res))_mthis.loaded=true};this.loaded=false;var optSku=this.getOptionSku();if(!optSku)return false;var URL=GSI_SERVICE_PATH+"items/"+this.getData('id')+"/options/"+optSku+".json";this.request(URL,null,callback,retrieveFb,'GET');return true};GSI_Resource_Item.prototype.getStock=function(callback){var _mthis=this,getStockFeedback=function(res){try{arrayData=JSON.parse(res);_mthis.data=GSI.functions.array_merge(_mthis.data,arrayData)}catch(e){_mthis.setError('Error setting the data.\nData : '+data+'\n'+e.message,'ERROR');return false}},URL=GSI_SERVICE_PATH+"items/"+this.getData('id');if(!this.canCheckStock())return false;if(GSI_STOCK_CHECK_OFF)return true;var optSku=this.getOptionSku();if(!optSku){this.data.available=0;return false};var data=new Array();if(GSI.partner)data.push('p='+GSI.partner);data.push(new Date().valueOf());URL+="/options/"+optSku+"/stock.json";this.request(URL,data.join('&'),callback,getStockFeedback,'GET');return true};GSI_Resource_Item.prototype.subscribeToNotifyMe=function(email,callback,errCallback){var _mthis=this,subscribeToNotifyMeFeedback=function(res){try{arrayData=JSON.parse(res);callback(arrayData)}catch(e){_mthis.setError('Error setting the data.\nData : '+data+'\n'+e.message,'ERROR');return false}},subscribeToNotifyMeFeedbackErr=function(res){try{arrayData=JSON.parse(res);errCallback(arrayData)}catch(e){_mthis.setError('Error setting the data.\nData : '+data+'\n'+e.message,'ERROR');return false}},URL=GSI_SERVICE_PATH+"notifyme.json",optSku=this.getOptionSku();if(!optSku){this.data.available=0;return false};var data=new Array();data.push('item_sku='+this.getData('id'));data.push('option_sku='+encodeURIComponent(optSku));data.push('email='+encodeURIComponent(email));data.push('subscription_type=cannot_buy');this.request(URL,data.join('&'),null,subscribeToNotifyMeFeedback,'GET',subscribeToNotifyMeFeedbackErr);return true};GSI_Resource_Item.prototype.getOptionSku=function(){if(this.data['type_']=='BUNDLE')return this.getData('id');var tag='sku';if(GSI.functions.count(this.data.options)==1){var optSku=GSI.functions.getElementFromArray(this.data.options,0);return optSku[tag]};var tArray=this.filter();if(GSI.functions.count(tArray)==1){var optSku=GSI.functions.getElementFromArray(tArray,0);return optSku[tag]}else return false};GSI_Resource_Item.prototype.getOptionId=function(){if(this.data['type_']=='BUNDLE')return this.getData('id');if(GSI.functions.count(this.data.options)==1){var optId=GSI.functions.getKeyFromArray(this.data.options,0);return optId};var tArray=this.filter();if(GSI.functions.count(tArray)==1){var optId=GSI.functions.getKeyFromArray(tArray,0);return optId}else return false};GSI_Resource_Item.prototype.inStock=function(){if(GSI_STOCK_CHECK_OFF||this.data.available==1)return true;return false};GSI_Resource_Item.prototype.canCheckStock=function(){if(GSI.functions.count(this.filters)==GSI.functions.count(this.availProperties))return true;if(this.data['type_']=='BUNDLE'){return true}else return false};GSI_Resource_Item.prototype._resetData=function(){this.data={manufacturer_sku:'0',available:0,options:{},PROPERTIES:{}};this.predata=false;this.filters=new Array();this.loaded=false;this.quantity=1;this.availProperties=new Array();this._activeView=null;this.activeViewName='main';this.xsells=new GSI_Controller_ItemsCollection_ItemXsells();this.resId=parseInt(Math.random()*Math.random()*1000000);this.isXsell=false;this.t_type='';return true}
function GSI_Resource_Form(){this.resId=parseInt(Math.random()*Math.random()*1000000);var _mthis=this;this._DOMForm=null;this.loaded=null;this.data=null;this.getResource=function(resId){if(_mthis.resId==resId)return _mthis;for(anItem in _mthis.data.items){if(anItem=='indexOf')continue;if(!(_mthis.data[anItem] instanceof GSI_Resource_Item))continue;if(res=_mthis.data.items[anItem].getResource(resId))return res};return false};this.fetch=function(){return new Array()};this.restore=function(){return true};this.init=function(){_mthis._resetData()};this.submit=function(callback,errCallback){var submitFeedback=function(res){try{if(!GSI.functions.isset(res)){_mthis.loaded=true;return true};_mthis._resetData();_mthis.data=JSON.parse(res);_mthis.loaded=true;callback()}catch(e){_mthis.setError('Error setting the data.\nData : '+data+'\n'+e.message,'ERROR');return false}},submitFeedbackErr=function(res){try{if(!GSI.functions.isset(res)){_mthis.loaded=true;return true};_mthis._resetData();_mthis.data=JSON.parse(res);_mthis.loaded=true;errCallback()}catch(e){_mthis.setError('Error setting the data.\nData : '+data+'\n'+e.message,'ERROR');return false}};URL=GSI_SERVICE_PATH+"form/"+_mthis.getFormName()+".json";data=_mthis.getDataLine();_mthis.request(URL,data,submitFeedback,null,_mthis.getFormMethod(),submitFeedbackErr);return true};this.getFormMethod=function(){return _mthis._DOMForm.method.toUpperCase()};this.getFormName=function(){return _mthis._DOMForm.name};this.getDataLine=function(){var data=new Array();$('input, select, textarea, button',_mthis._DOMForm).each(function(){if(this.type=="checkbox"&&!this.checked)return;data.push(this.name+'='+$(this).val())});return data.join("&")};this.setForm=function(Form){_mthis._DOMForm=Form};this._resetData=function(){_mthis.data={};_mthis.loaded=false;return true};this.init()};GSI_Resource_Form.prototype=new GSI_Resource()
function GSI_Resource_RecentlyViewedProducts(){this.resId=parseInt(Math.random()*Math.random()*1000000);var _mthis=this;this.collection=null;this.loaded=null;this.data=null;this.getResource=function(resId){if(_mthis.resId==resId)return _mthis;return _mthis.collection.getResource(resId)};this.fetch=function(){return new Array()};this.restore=function(){return true};this.getItem=function(Id){return _mthis.collection.getItem(Id)};this.init=function(){resetData()};this.add=function(prd,parms,callback){var rvpAddFeedback=function(res){};if(!GSI.functions.isset(callback))callback=function(){};URL=GSI_SERVICE_PATH+"rvp/"+prd.getData('id')+".json";data="";var p1=true;for(var aParm in parms){if(aParm=='indexOf')continue;if(p1){data+=aParm+'='+parms[aParm]}else data+='&'+aParm+'='+parms[aParm];p1=false};_mthis.request(URL,data,rvpAddFeedback,callback,'POST');return true};this.retrieve=function(callback){var retrieveFeedback=function(res){try{if(!GSI.functions.isset(res)){_mthis.loaded=true;return true};var tData=JSON.parse(res);if(!tData)tData={};_mthis.data=tData;if(!_mthis.data.response)return true;for(var aRVP in _mthis.data.response.docs){if(aRVP=='indexOf')continue;var factory=GSI.factories.getFactory('resource'),tItem=factory.createItem();tItem.setData('id',_mthis.data.response.docs[aRVP]['manufacturer_sku']);tItem.predata=_mthis.data.response.docs[aRVP];tItem.resetFilters();insert(tItem)};_mthis.loaded=true}catch(e){_mthis.setError('Error setting the data.\nData : '+data+'\n'+e.message,'ERROR');return false}};URL=GSI_SERVICE_PATH+"rvp.json?"+new Date().valueOf();data=null;resetData();try{_mthis.request(URL,data,callback,retrieveFeedback,'GET')}catch(e){_mthis.setError('error'+e.message,'ERROR')};return true};var insert=function(item){return _mthis.collection.addItem(item)},resetData=function(){_mthis.data={};_mthis.collection=new GSI_Controller_ItemsCollection_ItemRVP();_mthis.loaded=false;return true};this.getItems=function(){return _mthis.collection.getItems()};this.getNextItem=function(){return _mthis.collection.getNextItem()};this.getPreviousItem=function(){return _mthis.collection.getPreviousItem()};this.getItemByOptionSku=function(optSku){for(var anItem in _mthis.collection.items){if(anItem=='indexOf')continue;if(_mthis.collection.items[anItem].getOptionSku()==optSku)return _mthis.collection.items[anItem]};return false};this.init()};GSI_Resource_RecentlyViewedProducts.prototype=new GSI_Resource()
function GSI_Resource_SearchEngine(){this.resId=parseInt(Math.random()*Math.random()*1000000);this.xmlhttp=null;this.facets=null;this.fields=null;this.collection=null;this.page=null;this.pageSize=null;this.sorters=null;this.loaded=false;this.connected=true;this.data=null;var _mthis=this;this.getResource=function(resId){return _mthis.collection.getResource(resId)};this.fetch=function(){var tRes=new Array();tRes.data=GSI.functions.cloneObject(_mthis.data);tRes.facets=GSI.functions.cloneObject(_mthis.facets);tRes.sorters=GSI.functions.cloneObject(_mthis.sorters);tRes.page=_mthis.page;tRes.pageSize=_mthis.pageSize;tRes.loaded=_mthis.loaded;tRes.resId=_mthis.resId;tRes.resource=_mthis;return tRes};this.restore=function(data){if(!data)return false;try{if(data.resId!=_mthis.resId)return false;_mthis.data=data.data;_mthis.facets=data.facets;_mthis.sorters=data.sorters;_mthis.page=data.page;_mthis.pageSize=data.pageSize;_mthis.setDataFromJSON(JSON.stringify(_mthis.data));_mthis.loaded=data.loaded}catch(e){_mthis.setError('Could not restore properly. resId -> '+_mthis.resId,'ERROR');return false};return true};this.init=function(){resetData()};this.getQueryString=function(){var str='';for(var aFacet in _mthis.facets){if(aFacet=='indexOf')continue;if(_mthis.facets[aFacet]!=''){str+=escape('f_'+aFacet)+'='+escape(_mthis.facets[aFacet])+'&';str+=escape('fc_'+aFacet)+'&'}};for(var aField in _mthis.fields){if(aField=='indexOf')continue;if(_mthis.fields[aField]!='')str+=escape('f_'+aField)+'='+escape(_mthis.fields[aField])+'&'};if(GSI.functions.count(_mthis.sorters)>0){str+='sort_by=';for(var aSorter in _mthis.sorters){if(aSorter=='indexOf')continue;if(_mthis.sorters[aSorter])str+=escape(_mthis.sorters[aSorter])+','};str+='&'};if(_mthis.pageSize>0)str+='page_size='+escape(_mthis.pageSize)+'&';str+='page='+_mthis.page;return str};this.setQueryString=function(queryStr){if(!GSI.functions.isset(queryStr))queryStr='';var oldQueryStr=this.getQueryString();this.resetFacets();queryStr=queryStr.replace(/\+/g,' ');var tStr=queryStr.split("?",2);tStr=tStr.pop();if(!GSI.functions.isset(tStr))return;var tParms=tStr.split('&'),tFacet=null,tFacetsList=new Array();for(var aParm in tParms){if(isNaN(aParm))continue;if(tParms[aParm].indexOf('fc_')!=-1){tFacet=tParms[aParm].split('=',2);if(tFacet[0]!='')tFacetsList.push(tFacet[0].replace('fc_',''))}};var res=false;for(var aParm in tParms){if(isNaN(aParm))continue;if(tParms[aParm].indexOf('f_')!=-1){tFacet=tParms[aParm].split('=',2);if(tFacet[1]!='')if(GSI.functions.in_array((tFacet[0].replace('f_','')),tFacetsList)){_mthis.addFacet(unescape(tFacet[0].replace('f_','')),unescape(tFacet[1]));res=true}else{_mthis.addField(unescape(tFacet[0].replace('f_','')),unescape(tFacet[1]));res=true};continue};if(tParms[aParm].indexOf('page=')!=-1){tFacet=tParms[aParm].split('=',2);if(tFacet[1]!=''){_mthis.page=tFacet[1];res=true};continue};if(tParms[aParm].indexOf('sort_by=')!=-1){tFacet=tParms[aParm].split('=',2);if(tFacet[1]!=''){var tSorters=tFacet[1].split(',');for(var aSorter in tSorters){var sorterVals=tSorters[aSorter].split('_'),facetName=sorterVals[0],asc=sorterVals[1]=='asc'?true:false;if(facetName)_mthis.addSorter(facetName,asc)};res=true};continue};if(tParms[aParm].indexOf('page_size=')!=-1){tFacet=tParms[aParm].split('=',2);if(tFacet[1]!=''){_mthis.pageSize=tFacet[1];res=true};continue}};if(oldQueryStr==queryStr)return res;if(!res)this.setQueryString(oldQueryStr);return res};this.addSorter=function(facetName,asc){str=facetName;if(asc){str+='_asc'}else str+='_desc';_mthis.sorters[facetName]=str};this.removeSorter=function(facetName){delete _mthis.sorters[facetName]};this.resetSorters=function(){_mthis.sorters=new Array()};this.isSorterSet=function(facetName,asc){var str=facetName;if(asc){str+='_asc'}else str+='_desc';if(_mthis.sorters[facetName]&&_mthis.sorters[facetName]==str){return true}else return false};this.addFacet=function(name,value){if(_mthis.facets[name]){if(String(_mthis.facets[name]).indexOf(',')==-1)_mthis.facets[name]+=',';_mthis.facets[name]+=value+','}else _mthis.facets[name]=value};this.removeFacet=function(name,value){if(!GSI.functions.isset(value)){delete _mthis.facets[name];return true};var regE=new RegExp(value+"\,{0,}","g");_mthis.facets[name]=_mthis.facets[name].replace(regE,'');if(_mthis.facets[name]==',')delete _mthis.facets[name];return true};this.isFacetSet=function(name,value){if(!GSI.functions.isset(value)){if(_mthis.facets[name])return true;return false};if(_mthis.facets[name]&&_mthis.facets[name].indexOf(value)!=-1)return true;return false};this.resetFacets=function(){_mthis.collection.reset();_mthis.facets=new Array();_mthis.page=1;return true};this.addField=function(name,value){if(_mthis.fields[name]){if(String(_mthis.fields[name]).indexOf(',')==-1)_mthis.fields[name]+=',';_mthis.fields[name]+=value+','}else _mthis.fields[name]=value};this.removeField=function(name,value){if(!GSI.functions.isset(value)){delete _mthis.fields[name];return true};var regE=new RegExp(value+"\,{0,}","g");_mthis.fields[name]=_mthis.fields[name].replace(regE,'');if(_mthis.fields[name]==',')delete _mthis.fields[name];return true};this.isFieldSet=function(name,value){if(!GSI.functions.isset(value)){if(_mthis.fields[name])return true;return false};if(_mthis.fields[name]&&_mthis.fields[name].indexOf(value)!=-1)return true;return false};this.resetAll=function(){_mthis.collection.reset();_mthis.fields=new Array();_mthis.facets=new Array();_mthis.resetSorters();_mthis.page=1;return true};this.addRange=function(facetName,valueFrom,valueTo){if(valueFrom>=0){_mthis.removeFacet(facetName+'_from');_mthis.addFacet(facetName+'_from',valueFrom)};if(valueTo>=0){_mthis.removeFacet(facetName+'_to');_mthis.addFacet(facetName+'_to',valueTo)}};this.setSortParameters=function(sortParameters){_mthis.resetSorters();var sortParametersPieces=sortParameters.split(','),sortParameter=null,i=0,n=sortParametersPieces.length;for(i=0;i<n;i++){sortParameter=sortParametersPieces[i].replace(/^\s+|\s+$/g,"");sortParameterPieces=sortParameter.split(' ');_mthis.addSorter(sortParameterPieces[0],sortParameterPieces[1]=='asc')}};this.setPageSizeParameters=function(pageSizeParameter){_mthis.pageSize=pageSizeParameter};this.setDataFromJSON=function(data,cumulative){try{_mthis.data=JSON.parse(data);tResults=_mthis.data['response']['docs'];if(cumulative)tItems=_mthis.getItems();_mthis.collection.reset();_mthis.page=1;var pageSizeParameter=_mthis.data['responseHeader']['params']['rows'];_mthis.setPageSizeParameters(pageSizeParameter);var sortParameters=_mthis.data['responseHeader']['params']['sort'];_mthis.setSortParameters(sortParameters);for(var index in _mthis.data['response']['docs']){if(index=='indexOf')continue;var factory=GSI.factories.getFactory('resource'),tItem=factory.createItem();tItem.setData('id',_mthis.data['response']['docs'][index]['manufacturer_sku']);tItem.predata=_mthis.data['response']['docs'][index];tItem.resetFilters();_mthis.insert(tItem)};if(cumulative)for(var i in tItems){if(i=='indexOf')continue;_mthis.insert(tItems[i])};try{for(var aPage in _mthis.data.pagination.links){if(aPage=='indexOf')continue;if(_mthis.data.pagination.links[aPage]=='current')_mthis.page=parseInt(aPage)}}catch(e){};_mthis.loaded=true}catch(e){_mthis.loaded=false;_mthis.setError('Error setting the data.\nData : '+data+'\n'+e.message,'ERROR');return false}};this.search=function(callback,queryStr,cumulative){if(!GSI.functions.isset(cumulative))cumulative=false;var searchFeedback=function(response){_mthis.setDataFromJSON(response,cumulative);_mthis.xmlhttp=null;if(_mthis.data['response']){_mthis.connected=true}else _mthis.connected=false};_mthis.loaded=false;URL=GSI_SERVICE_PATH+"search.json";data=queryStr?queryStr:_mthis.getQueryString();data+="&ts="+new Date().valueOf();if(_mthis.xmlhttp)try{_mthis.setError('Aborting call','INFO');_mthis.xmlhttp.abort()}catch(e){_mthis.setError('Error while aborting call','ERROR')};_mthis.xmlhttp=_mthis.request(URL,data,callback,searchFeedback,'GET')};this.getItem=function(Id){return _mthis.collection.getItem(Id)};this.getItems=function(){return _mthis.collection.getItems()};this.insert=function(item){return _mthis.collection.addItem(item)};this.getNextItem=function(){return _mthis.collection.getNextItem()};this.getPreviousItem=function(){return _mthis.collection.getPreviousItem()};this.getPage=function(pageNum,callback){_mthis.page=pageNum;URL=GSI_SERVICE_PATH+"search.json";data=_mthis.getQueryString();data+="&ts="+new Date().valueOf();_mthis.request(URL,data,callback,getPageFeedback,'GET')};this.xsells=null;this.getXsells=function(callback){var xsellFeedBack=function(data){try{var tData=JSON.parse(data);if((GSI.functions.count(tData)<=1&&tData.xsell['message'])||(tData.xsell['error'])){var tmp=GSI.functions.parse_url(document.location.href),secid=tmp.queryKey['secid'];if(typeof (secid)!='undefined')return _mthis._getSectionDefaultXsells(callback,secid)};_mthis.xsells=item.xsells;callback()}catch(e){_mthis.setError('Error setting the data.\nData : '+data+'\n'+e.message,'ERROR');return false}},item=GSI.functions.getElementFromArray(this.collection.items,0);if(item instanceof GSI_Resource_Item){item.getXsells(xsellFeedBack);return true}else{GSI.setError('First item in SE is undefined','INFO');return false}};this._getSectionDefaultXsells=function(callback,secid){var SectionDeafultXsellFeedBack=function(data){try{_mthis.xsells=new GSI_Controller_ItemsCollection();var tData=JSON.parse(data);_mthis.xsells.xsellNav=true;if(GSI.functions.count(tData)<=1&&tData.message){callback();return};_mthis.xsells.data=tData;for(var aXsell in _mthis.xsells.data.xsell.response.docs){if(aXsell=='indexOf')continue;var factory=GSI.factories.getFactory('resource'),tItem=factory.createItem();tItem.setData('id',_mthis.xsells.data.xsell.response.docs[aXsell]['manufacturer_sku']);tItem.predata=_mthis.xsells.data.xsell.response.docs[aXsell];_mthis.xsells.addItem(tItem)};callback()}catch(e){_mthis.setError('Error setting the data.\nData : '+data+'\n'+e.message,'ERROR');return false}},URL=GSI_SERVICE_PATH+"sections/"+secid+"/xsell.json";this.request(URL,null,null,SectionDeafultXsellFeedBack,'GET');return true};var getPageFeedback=function(response){_mthis.setDataFromJSON(response,true);_mthis.xmlhttp=null;if(_mthis.data['response']){_mthis.connected=true}else _mthis.connected=false},resetData=function(){_mthis.data={};_mthis.collection=new GSI_Controller_ItemsCollection_SearchEngine();return _mthis.resetAll()};this.init()};GSI_Resource_SearchEngine.prototype=new GSI_Resource()
function GSI_Resource_Application(){this.version='$Revision: 1.6 $';this.resId=parseInt(Math.random()*Math.random()*1000000);this.hasHistoric=false;this.SID=null;this.partner=null;this.errorStack=new GSI_ErrorStack();this.se=null;this.basket=null;this.rvp=null;this.activeItem=null;var timestamp=null,_mthis=this;this.getResource=function(resId){if(_mthis.resId==resId)return _mthis;if(_mthis.activeItem instanceof GSI_Resource_Item)if(res=_mthis.activeItem.getResource(resId))return res;if(_mthis.basket)if(res=_mthis.basket.getResource(resId))return res;if(_mthis.se)if(res=_mthis.se.getResource(resId))return res;if(_mthis.rvp)if(res=_mthis.rvp.getResource(resId))return res;return false};this.fetch=function(){var tRes=new Array();if(_mthis.activeItem instanceof GSI_Resource_Item)tRes.activeItemId=_mthis.activeItem.getData('id');tRes.resId=_mthis.resId;tRes.resource=_mthis;return tRes};this.restore=function(data){if(!data)return false;try{if(data.resId!=_mthis.resId)return false;if(data.activeItemId){_mthis.setActiveItem(data.activeItemId)}else _mthis.activeItem=null}catch(e){_mthis.setError('Could not restore properly. resId -> '+_mthis.resId,'ERROR');return false};return true};this.init=function(){_mthis.SID=null;timestamp=new Date().valueOf();_mthis.activeItem=null;_mthis.basket=new GSI_Resource_Basket();_mthis.se=new GSI_Resource_SearchEngine();_mthis.rvp=new GSI_Resource_RecentlyViewedProducts();_mthis.dict=new GSI_Resource_Dictionary()};this.setError=function(msg,type){_mthis.errorStack.add(msg,type)};this.getItem=function(ID){var res=false;if(_mthis.activeItem instanceof GSI_Resource_Item)if(res=_mthis.activeItem.getItem(ID))return res;if(_mthis.se)if(res=_mthis.se.getItem(ID))return res;if(_mthis.basket)if(res=_mthis.basket.getItem(ID))return res;if(_mthis.rvp)if(res=_mthis.rvp.getItem(ID))return res;return false};this.getLoadSteps=function(){var total=0;total+=_mthis.dict.getLoadSteps();total+=_mthis.basket.getLoadSteps();total+=_mthis.se.getLoadSteps();total+=_mthis.rvp.getLoadSteps();total+=_mthis.widgets.getLoadSteps();return total};this.setActiveItem=function(ID){if(ID instanceof GSI_Resource_Item){_mthis.activeItem=ID;return ID};var tRes=_mthis.getItem(ID);if(tRes)_mthis.activeItem=tRes;return tRes};this.getSID=function(){return _mthis.SID};this.updateProgressBar=function(text){if(_mthis.progressBar)_mthis.progressBar.update(text)};this.functions={};this.init()};GSI_Resource_Application.prototype=new GSI_Resource();var GSI=new GSI_Resource_Application(null)
var GSI_Functions=function(){this.browserVersion=function(userAgent,version){if(jQuery.browser[userAgent]){var aVersion=parseInt(jQuery.browser.version);if(aVersion==version)return true};return false};this.count=function(arr){if(typeof (arr)=='string')return 0;if(typeof (arr)=='function')return 0;var cnt=0;for(var index in arr){if(index=='indexOf')continue;if(arr[index])cnt++};return cnt};this.isset=function(tObj){if(typeof tObj=="undefined")return false;if(tObj==null)return false;return true};this.number_format=function(a,b,c,d){a=Math.round(a*Math.pow(10,b))/Math.pow(10,b);e=a+'';f=e.split('.');if(!f[0])f[0]='0';if(!f[1])f[1]='';if(f[1].length<b){g=f[1];for(i=f[1].length+1;i<=b;i++)g+='0';f[1]=g};if(d!=''&&f[0].length>3){h=f[0];f[0]='';for(j=3;j<h.length;j+=3){i=h.slice(h.length-j,h.length-j+3);f[0]=d+i+f[0]+''};j=h.substr(0,(h.length%3==0)?3:(h.length%3));f[0]=j+f[0]};c=(b<=0)?'':c;return f[0]+c+f[1]};this.getElementFromArray=function(arr,position){if(isNaN(position))return false;var cnt=0;for(var index in arr){if(index=='indexOf')continue;if(cnt==position)return arr[index];cnt++};return false};this.getKeyFromArray=function(arr,position){if(isNaN(position))return false;var cnt=0;for(var index in arr){if(index=='indexOf')continue;if(cnt==position)return index;cnt++};return false};this.moneyFormat=function(num,currencyId){var currencies={'default':{decSep:".",thsep:",",pos:"L",numdecs:2,sym:"",sepSpace:' '}};if(GSI_PartnerCurrency!='undefined'){currencies=GSI_PartnerCurrency}else return'';if(!currencies[currencyId])currencyId='default';if(isNaN(num))num="0";var str=GSI.functions.number_format(num,currencies[currencyId]['numdecs'],currencies[currencyId]['decSep'],currencies[currencyId]['thsep']);if(currencies[currencyId]['pos']=="L"){str=currencies[currencyId]['sym']+currencies[currencyId]['sepSpace']+str}else str+=currencies[currencyId]['sepSpace']+currencies[currencyId]['sym'];return str};this.array_merge=function(arr1,arr2,clone){var _FLAG=false;if(!GSI.functions.isset(arr1))arr1=[];if(!GSI.functions.isset(arr2))arr2=[];if(clone){var resultArray=this.cloneObject(arr1)}else var resultArray=arr1;for(var aKey in arr2){if(aKey=='indexOf')continue;if(GSI.functions.count(arr2[aKey])>0&&resultArray[aKey]){resultArray[aKey]=GSI.functions.array_merge(resultArray[aKey],arr2[aKey])}else resultArray[aKey]=arr2[aKey]};return resultArray};this.cloneObject=function(obj){if(!obj)return false;var tRes={};for(var anElem in obj){if(anElem=='indexOf')continue;if(GSI.functions.count(obj[anElem])>0){tRes[anElem]=GSI.functions.cloneObject(obj[anElem])}else tRes[anElem]=obj[anElem]};return tRes};this.in_array=function(needle,haystack){try{for(var i in haystack){if(i=='indexOf')continue;if(haystack[i]==needle)return true};return false}catch(e){return false}};this.getScrollXY=function(){var scrOfX=0,scrOfY=7;if(typeof (window.pageYOffset)=='number'){scrOfY=window.pageYOffset;scrOfX=window.pageXOffset}else if(document.body&&(document.body.scrollLeft||document.body.scrollTop)){scrOfY=document.body.scrollTop;scrOfX=document.body.scrollLeft}else if(document.documentElement&&(document.documentElement.scrollLeft||document.documentElement.scrollTop)){scrOfY=document.documentElement.scrollTop;scrOfX=document.documentElement.scrollLeft};return[scrOfX,scrOfY]};this.checkForFlash=function(version){if(isNaN(version))version=0;var flashIsInstalled=false,flash;if(window.ActiveXObject){try{flash=new ActiveXObject(("ShockwaveFlash.ShockwaveFlash."+version));flashIsInstalled=true}catch(e){}}else if(navigator.plugins&&navigator.mimeTypes.length>0){flash=navigator.plugins["Shockwave Flash"];if(flash){var flashVersion=navigator.plugins["Shockwave Flash"].description.replace(/.*\s(\d+\.\d+).*/,"$1");if(flashVersion>=version)flashIsInstalled=true}};return flashIsInstalled};this.isEmailValid=function(email,required){var allValidChars=function(email){var parsed=true,validchars="abcdefghijklmnopqrstuvwxyz0123456789@!#$%&'*+-/=?^_`.{|}~";for(var i=0;i<email.length;i++){var letter=email.charAt(i).toLowerCase();if(validchars.indexOf(letter)!=-1)continue;parsed=false;break};return parsed};if(required==undefined)required=true;if(email==null){if(required)return false;return true};if(email.length==0){if(required)return false;return true};if(!allValidChars(email))return false;if(email.indexOf("@")<1){return false}else if(email.lastIndexOf(".")<=email.indexOf("@")){return false}else if(email.indexOf("@")==email.length){return false}else if(email.indexOf("..")>=0){return false}else if(email.indexOf(".")==email.length)return false;return true};this.ucwords=function(str){return(str+'').replace(/^(.)|\s(.)/g,function($1){return $1.toUpperCase()})};this.parse_url=function(str,component){var o={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*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}},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;switch(component){case'PHP_URL_SCHEME':return uri.protocol;case'PHP_URL_HOST':return uri.host;case'PHP_URL_PORT':return uri.port;case'PHP_URL_USER':return uri.user;case'PHP_URL_PASS':return uri.password;case'PHP_URL_PATH':return uri.path;case'PHP_URL_QUERY':return uri.query;case'PHP_URL_FRAGMENT':return uri.anchor;default:var retArr={};if(uri.protocol!=='')retArr.scheme=uri.protocol;if(uri.host!=='')retArr.host=uri.host;if(uri.port!=='')retArr.port=uri.port;if(uri.user!=='')retArr.user=uri.user;if(uri.password!=='')retArr.pass=uri.password;if(uri.path!=='')retArr.path=uri.path;if(uri.query!=='')retArr.query=uri.query;if(uri.anchor!=='')retArr.fragment=uri.anchor;return retArr}}};GSI.functions=new GSI_Functions()
function GSI_Widget(){};GSI_Widget.prototype.padre;GSI_Widget.prototype._loadSteps=0;GSI_Widget.prototype._templates=null;GSI_Widget.prototype.loaded=false;GSI_Widget.prototype.name='NotFinalWidget';GSI_Widget.prototype.loadOrder=1;GSI_Widget.prototype.errorStack=new GSI_ErrorStack();GSI_Widget.prototype.addTemplate=function(key,template){if(!this._templates)this._templates=new Array();this._templates[key]=template};GSI_Widget.prototype.setError=function(msg,type){this.errorStack.add(msg,type)};GSI_Widget.prototype.getLoadSteps=function(){return this._loadSteps};GSI_Widget.prototype.init=function(){return true}
function GSI_Controller_Widget(padre){this.padre=padre;var preloaded=new Array(),loadSteps=2,_mthis=this;this.errorStack=new GSI_ErrorStack();this.setError=function(msg,type){_mthis.errorStack.add(msg,type)};this.getLoadSteps=function(){var total=loadSteps;for(var aWidget in preloaded){if(aWidget=='indexOf')continue;total+=preloaded[aWidget].getLoadSteps()};return total};this.loadWidget=function(aWidget){preloaded[aWidget.name]=aWidget;return true;if(aWidget.init()){if(!_mthis.getWidget(aWidget.name))_mthis[aWidget.name]=aWidget;return true};return false};this.initAll=function(){GSI.updateProgressBar(GSI.dict.getText('JSAPI','initiating_widgets'));var _FLAG=true,tSize=0;for(var aWidget in preloaded){if(aWidget=='indexOf')continue;if(tSize<preloaded[aWidget].loadOrder)tSize=preloaded[aWidget].loadOrder};for(var i=0;i<=tSize;i++)for(var aWidget in preloaded){if(aWidget=='indexOf'||!preloaded[aWidget])continue;if(preloaded[aWidget].loadOrder==i){try{if(preloaded[aWidget].init()){_mthis[preloaded[aWidget].name]=preloaded[aWidget]}else{GSI.setError("Error while initiating "+aWidget+'\n','ERROR');_FLAG=false}}catch(e){GSI.setError("Error while initiating "+aWidget+' -> '+e.message,'ERROR')};preloaded[aWidget]=false}};GSI.updateProgressBar(GSI.dict.getText('JSAPI','widgets_initiated'));return _FLAG};this.getWidget=function(name){if(_mthis[name]){return _mthis[name]}else return false}};GSI.widgets=new GSI_Controller_Widget(GSI)
function GSI_Controller_Forms(padre){this.padre=padre;var preloaded=new Array(),_mthis=this;this.errorStack=new GSI_ErrorStack();this.setError=function(msg,type){_mthis.errorStack.add(msg,type)};this.getLoadSteps=function(){var total=loadSteps;for(var aform in preloaded){if(aform=='indexOf')continue;total+=preloaded[aform].getLoadSteps()};return total};this.loadForm=function(aForm){var aForm=aForm;$(document).ready(function(){if(aForm.init()){if(!_mthis.getForm(aForm.getFormName()))_mthis[aForm.getFormName()]=aForm;return true};return false})};this.getForm=function(name){if(_mthis[name]){return _mthis[name]}else return false}};GSI.forms=new GSI_Controller_Forms(GSI)
function GSI_Controller_Cache(padre){this.padre=padre;this.cacheoff=true;var _mthis=this;this.errorStack=new GSI_ErrorStack();this.cookie=null;this.setError=function(msg,type){_mthis.errorStack.add(msg,type)};this.add=function(key,value){if(_mthis.cacheoff)return false;var tKey=GSI.SID+'_'+key;createCookie(tKey,value);return true};this.get=function(key){var tKey=GSI.SID+'_'+key,res=readCookie(tKey);if(res=='')return false;return res};this.reset=function(key){eraseCookie(key)};var createCookie=function(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString()}else var expires="";document.cookie=name+"="+value+expires+"; path=/"},readCookie=function(name){var nameEQ=name+"=",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 c.substring(nameEQ.length,c.length)};return null},eraseCookie=function(name){createCookie(name,"",-1)},init=function(){};init()};GSI.cache=new GSI_Controller_Cache(GSI)
function GSI_Controller_Factory(padre){this.padre=padre;var preloaded=new Array(),_mthis=this;this._factories=new Array();this.errorStack=new GSI_ErrorStack();this.setError=function(msg,type){_mthis.errorStack.add(msg,type)};this.addFactory=function(factory){if(!factory.type)return false;this._factories[factory.type]=factory};this.getFactory=function(type){if(this._factories[type]){return this._factories[type]}else return false}};GSI.factories=new GSI_Controller_Factory(GSI)
function GSI_Factory_Resource(){this.padre;this.type='resource';this.createItem=function(){return new GSI_Resource_Item()}};var tF=new GSI_Factory_Resource();GSI.factories.addFactory(tF)
function GSI_Factory_Element(){};this.padre;GSI_Factory_Element.prototype.type='element';GSI_Factory_Element.prototype.createTooltip=function(type){return new GSI_Element_Tooltip()};var tF=new GSI_Factory_Element();GSI.factories.addFactory(tF)
var GSI_Element_Form=function(){this._reset()};GSI_Element_Form.prototype._form=null;GSI_Element_Form.prototype._fields=null;GSI_Element_Form.prototype._name=null;GSI_Element_Form.prototype._active=null;GSI_Element_Form.prototype._resource=null;GSI_Element_Form.prototype._loader=null;GSI_Element_Form.prototype._cosmetic=null;GSI_Element_Form.prototype._load=function(){};GSI_Element_Form.prototype.getFormName=function(){return this._name};GSI_Element_Form.prototype.show=function(){};GSI_Element_Form.prototype.hide=function(){};GSI_Element_Form.prototype.loader=function(on){if(on){this._loader.on()}else this._loader.off()};GSI_Element_Form.prototype.submit=function(){this._doSubmit()};GSI_Element_Form.prototype._doSubmit=function(){this.loader(true);this._resource.submit(this._drawSuccess,this._drawError)};GSI_Element_Form.prototype._drawSuccess=function(){this._doDrawSuccess();this.loader(false)};GSI_Element_Form.prototype._doDrawSuccess=function(){};GSI_Element_Form.prototype._drawError=function(){this._doDrawError();this.loader(false)};GSI_Element_Form.prototype._doDrawError=function(){};GSI_Element_Form.prototype._doCosmetics=function(){return;this._cosmetic=new GSI_Element_FormCosmetic();this._cosmetic.start(this.placeHolder)};GSI_Element_Form.prototype.activate=function(on){};GSI_Element_Form.prototype.refresh=function(){};GSI_Element_Form.prototype.validate=function(){return true};GSI_Element_Form.prototype.init=function(){var _mthis=this,form=document.forms[this._name];if($(form).length==1){this._form=form;this._resource.setForm(form);$('input, select, textarea, button',form).each(function(){_mthis._fields.push(this)});$(this._form).submit(function(){_mthis.submit();return false});if(this._load()){this._doCosmetics();return true}else return false};return false};GSI_Element_Form.prototype._reset=function(){this._form=null;this._fields=new Array();this._active=false;this._resource=new GSI_Resource_Form();this._cosmetic=null}
function GSI_Element_Form_Validator(){};GSI_Element_Form_Validator.prototype.validate=function(domOBJ){};var GSI_Validators=new Array()
function GSI_Element_Form_Validator_ClearFocus(){};GSI_Element_Form_Validator_ClearFocus.prototype=new GSI_Element_Form_Validator();GSI_Element_Form_Validator_ClearFocus.prototype.validate=function(domOBJ){$(domOBJ).focus(function(){var cadena=$(this).val();if(cadena!="")$(this).val("");this.cleared=true;$(this).blur(function(){if($(this).val()=="")$(this).val(cadena)})})};GSI_Validators.GSI_Element_Form_Validator_ClearFocus="GSI_Validator_ClearFocus"
function GSI_Element_Form_Validator_ToUpperCase(){};GSI_Element_Form_Validator_ToUpperCase.prototype=new GSI_Element_Form_Validator();GSI_Element_Form_Validator_ToUpperCase.prototype.validate=function(domOBJ){$(domOBJ).blur(function(){$(this).val($(this).val().toUpperCase())})};GSI_Validators.GSI_Element_Form_Validator_ToUpperCase="GSI_Validator_ToUpperCase"
var GSI_Element_Form_Default=function(){this._forms=[]};GSI_Element_Form_Default.prototype=new GSI_Element_Form();GSI_Element_Form_Default.prototype._name='Default';GSI_Element_Form_Default.prototype._forms=null;GSI_Element_Form_Default.prototype._load=function(){};GSI_Element_Form_Default.prototype.getFormName=function(){return this._name};GSI_Element_Form_Default.prototype.validate=function(){return true};GSI_Element_Form_Default.prototype.init=function(){var _mthis=this;this._forms=document.forms;try{for(var aValidator in GSI_Validators){var aValidatorCall=eval("new "+aValidator+"();");aValidatorCall.validate($("."+GSI_Validators[aValidator]))}}catch(e){GSI.setError('ERROR running validator: '+e.message,'ERROR')};return true};var tF=new GSI_Element_Form_Default();GSI.forms.loadForm(tF)
function GSI_Controller_Tracking(padre){this.padre=padre;this._trackers=new Array();this.errorStack=new GSI_ErrorStack();this.setError=function(msg,type){this.errorStack.add(msg,type)};this.addTracker=function(aTracker){this._trackers.push(aTracker)};this.getTrackersByType=function(type){var res=new Array();for(var i in this._trackers){if(isNaN(i))continue;if(this._trackers[i].type==type)res.push(this._trackers[i])};return res};this.tag=function(type,request){var trackers=this.getTrackersByType(type);for(var i in trackers){if(isNaN(i))continue;if(trackers[i] instanceof GSI_Tracker)try{trackers[i].execute(request)}catch(e){GSI.setError('there was an error while trying to tag '+type+' :'+e.message,'ERROR')}};return true}};GSI.tracking=new GSI_Controller_Tracking(GSI)
function GSI_Tracker(){this.padre;this.type=null;this._request=null;var _mthis=this;this.execute=function(request){_mthis._request=request};this._doExecute=function(data){};this._evalTrackingLines=function(arrayTags){for(var aTag in arrayTags){if(aTag=='indexOf')continue;eval(arrayTags[aTag])}}}
var GSI_ICC_PEAK_Element_Container_Menu_Tab_HomePromo=function(){function F(){};F.prototype=new GSI_Element_Container_Menu_Tab();F.prototype._activateLink=function(link){var _mthis=this,doShow=function(){_mthis.activeLink=link;_mthis.showElement(link);for(var aLink in _mthis._links){if(_mthis._links[aLink]=='indexOf')continue;if(_mthis._links[aLink]==_mthis.activeLink){_mthis._links[aLink].placeHolder.removeClass('disabled')}else _mthis._links[aLink].placeHolder.addClass('disabled')}};if(_mthis.activeLink===link){$('#promo-content-wrp').slideUp(500);_mthis.hideElement(_mthis.activeLink,function(){_mthis.activeLink=null;for(var aLink in _mthis._links){if(_mthis._links[aLink]=='indexOf')continue;_mthis._links[aLink].placeHolder.removeClass('disabled')}});return};if(GSI.functions.isset(_mthis.activeLink)){_mthis.hideElement(_mthis.activeLink,doShow);return};$('#promo-content-wrp').slideDown(500);doShow()};F.prototype.resetAll=function(){var _mthis=this;for(var aLink in _mthis._links){if(_mthis._links[aLink]=='indexOf')continue;_mthis._links[aLink].placeHolder.removeClass('disabled')}};F.prototype.hideAll=function(){var _mthis=this;$('#promo-content-wrp').slideUp(500);for(var aLink in _mthis._links){if(aLink=='indexOf')continue;_mthis._links[aLink].hideContent()};_mthis.resetAll();_mthis.activeLink=null};F.prototype._createLink=function(){return new GSI_ICC_PEAK_Element_Container_Link_HomePromo()};return new F()}
var GSI_ICC_PEAK_Element_Container_Link_HomePromo=function(){function F(){};F.prototype=new GSI_Element_Container_Link();F.prototype._createElement=function(){return new GSI_ICC_PEAK_Element_Container_Content_HomePromo()};return new F()}
var GSI_ICC_PEAK_Element_Container_Content_HomePromo=function(){function F(){};F.prototype=new GSI_Element_Container_Content();F.prototype.show=function(callback){var _mthis=this;if(!GSI.functions.isset(callback))callback=function(){};_mthis.placeHolder.fadeIn(300,callback)};F.prototype.hide=function(callback){var _mthis=this;if(!GSI.functions.isset(callback))callback=function(){};_mthis.placeHolder.fadeOut(300,callback)};return new F()}

/**
* $Id: Omniture.js,v 1.8 2009/10/22 16:03:20 eherrera Exp $
*@author: eherrera 
*@constructor
*/
function GSI_Tracker_Omniture(){
	
	function F(){};
	F.prototype = new GSI_Tracker;
	
	F.prototype.type = null;
	F.prototype.execute = function(request){
		var _mthis =this;
		
		_mthis.request = request;
		
		_mthis._run(); 
	};
	
	F.prototype._run = function(){
		var _mthis = this;
		_mthis._doExecute('');
	};
	
	F.prototype._doExecute = function(omnitureFileContent){
		var _mthis = this;
		
		var obj = _mthis._evalTrackingLines(_mthis._getTrackingLines());
		if (GSI.functions.count(obj) == 0) return;
		_mthis._clearValues(GSI_Omniture);
		GSI_Omniture = GSI.functions.array_merge(GSI_Omniture, obj);
		void(GSI_Omniture.t());		
	};
	
	F.prototype._evalTrackingLines = function(arrayTags){
		var s={};
		for(var aTag in arrayTags){
			if (aTag == 'indexOf') continue;
			eval(arrayTags[aTag]);
		}
		return s;
	};
	
	F.prototype._getTrackingLines = function(){
		//this method will be overwritten
	};
	
	F.prototype._clearValues = function(obj){
		for (var key in obj){
			var keyVal = key.substr(0,4);
			if (keyVal == 'prop' 
				|| keyVal == 'eVar'
				|| keyVal == 'g_eV'
				|| keyVal == 'g_pr') obj[key] = "";			
		}
		obj.pageName = "";
		obj.g_pageName = "";
		obj.channel = "";
		obj.g_channel = "";
		obj.events = "";
		obj.g_events = "";
		obj.products = "";		
		obj.g_products = "";
		obj._purchaseID = "";
	};
	
	return new F;
};