var Stars=/*286329323030372053204368616C6D657273*/
{
 data:[], logged:0,
   
 init:function(ratingId, formElem, rating, starCount, offStar, onStar, hFunc, cFunc)
 {    
  if(document.getElementById)
  { 
   var elem=this.data[ratingId]={};
   
   if(!!hFunc)
    elem.externHoverFunc=hFunc;
  
   if(!!cFunc)
    elem.externSetFunc=cFunc;
    
   elem.elemRef=document.getElementById(ratingId);
   
   elem.formElem=formElem;   
   
   elem.starCount=starCount;
   elem.rating=rating;
   elem.offStar=offStar;
   elem.onStar=onStar;
      
   elem.rating=Math.max(-1,elem.rating);
   if(elem.rating!=-1)
    elem.rating--;
    
   elem.starTable=[];
   if(elem.elemRef)
    this.build(ratingId);
   else
    alert(this.elemRef+" is not a valid element ID.") 
  }
 },
 
 build:function(id)
 {
  var elem=this.data[id]; try{var i=this.cont()?0:elem.starCount}catch(e){var i=elem.starCount}
    
  for(var sp, lnk; i<elem.starCount; i++)
  {
   (lnk=document.createElement('a')).appendChild(sp=document.createElement('img'));
   lnk.href='#';
   lnk.className='StarsLinks';
   lnk.style.textDecoration='none';
   
   
   sp.className='StarsImages';
   sp.idx=i;
   sp.src=elem.offStar;
   sp.style.border='none';
      
   elem.imgBuffer=new Image();
   elem.imgBuffer.src=elem.onStar;
   
   lnk.onmouseover=new Function("if(typeof Stars!='undefined')Stars.lightOn('"+id+"',this.firstChild.idx)");
   lnk.onfocus=lnk.onmouseover;
   lnk.onmouseout=new Function("if(typeof Stars!='undefined')Stars.lightOff('"+id+"',this.firstChild.idx)");
   lnk.onblur=lnk.onmouseout;
   lnk.onmouseup=function(){if(this.blur)this.blur();}
   lnk.onclick=new Function("if(typeof Stars!='undefined'){Stars.set('"+id+"', this.firstChild.idx);}return false");
   elem.starTable[i]=sp
   elem.elemRef.appendChild(lnk);
   elem.formElem.value=elem.rating+1;
  }
  if(lnk)
  {
  this.addToHandler(elem.formElem,'onchange', new Function("if(typeof Stars!='undefined')Stars.setFromForm('"+id+"',this.value);"));
   lnk.onmouseout();
  }
 },

 setFromForm:function(id, elemValue)
 {
  var v, dat=this.data[id], len=dat.starTable.length;
   
  if(!isNaN(v=parseInt(elemValue,10)))
  {  
   dat.rating=(elemValue > len ? (len-1) : elemValue < -1 ? -1 : (elemValue-1) );
   this.lightOff(id);
   
   if( dat.externSetFunc )
    dat.externSetFunc( v-1 );
  }  
  
  return false;
 },
 
 setFormElem:function(elem, value)
 {
  var h;  
  if(elem)
  {
   h=elem.onchange;
   elem.value=value;
   elem.onchange=h;
  }
 },
  
 lightOn:function(id, elemIdx)
 {
  var dat=this.data[id], table=dat.starTable;
  
  for(var i=0,len=table.length; i<len;  i++)
   table[i].src=(i<=elemIdx?dat.onStar:dat.offStar);   
  
  this.setFormElem(dat.formElem, elemIdx+1);
  
  if(dat.externHoverFunc)
   dat.externHoverFunc(elemIdx);
 },
 
 lightOff:function(id)
 {
  var dat=this.data[id], table=dat.starTable;
  
  for(var i=0,len=table.length; i<len;  i++)
   table[i].src=(i<=dat.rating?dat.onStar:dat.offStar);
   
  this.setFormElem(dat.formElem, dat.rating+1); 
  
  if(dat.externHoverFunc)
   dat.externHoverFunc(dat.rating);
 },
 
 set:function(id, idx)
 {
  this.data[id].formElem.value=(this.data[id].rating=idx)+1;
  
  this.lightOn(id, Math.max(-1, Math.min(idx, this.data[id].starTable.length-1)) );
  
  if(this.data[id].externSetFunc)
   this.data[id].externSetFunc( idx );
  
  return false;  
 },
 
 
 addToHandler:function(obj, evt, func)
 {
  if(obj[evt])
   {
    obj[evt]=function(f,g)
    {
     return function()
     {
      f.apply(this,arguments);
      return g.apply(this,arguments);
     };
    }(func, obj[evt]);
   }
   else
    obj[evt]=func;
 },
 
 cont:function()
 {
 
  return true;
 }
  
}
function fnConformRefresh(DIVID) {
	if (document.getElementById(DIVID)) {
		document.getElementById(DIVID).style.display="none";
	}
}



function checkRatingFields(form){
	
	var notRatedFields = new Array();
	var aIndex = 0;
	

	if(form.txtStarCustomerService.value == 0)
		notRatedFields[aIndex++] = "Customer Service";
		
	if(form.txtStarSatisfaction.value == 0)
		notRatedFields[aIndex++] = "Satisfaction";
		
	if(form.txtStarPrice.value == 0)
		notRatedFields[aIndex++] = "Price";
		

	if(notRatedFields.length == 0 )  //All fields are rated
		return true;
	
    else if(notRatedFields.length == 3) { //None of the fields are rated.
		document.getElementById("errortext1").style.display="";
		document.getElementById("errortext1").innerHTML="Please vote on atleast one category.";
		var t=setTimeout("fnConformRefresh('errortext1')",10000);
		return false;
	}
}

	
$(function(){
	$("#middle_container img").lazyload({
    	effect      : "fadeIn",
		threshold : 200, 
		placeholder : "http://www.cigreviews.com/images/grey.gif"				
	});

    
});


