function Skin() {}

Skin.apiUrl = commonApiUrl;

function replaceSpace(thefield){
	if(thefield.value==''&&thefield.defaultValue!=thefield.value) thefield.value='';
}

Skin.checkCommentLength = function(obj){
	var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
	if (obj.getAttribute && obj.value.length>mlength)
		obj.value=obj.value.substring(0,mlength);
	p_o("commentLength").innerHTML = mlength - obj.value.length;
	if(obj.value.length==500) {
		p_o("commentLength").style.color = "#822222";
	} else {
		p_o("commentLength").style.color = "#868686";
	}
}

Skin.showhide = function(id) {
var dropdwn = p_o('cat_drop');
    if (p_o) {
	   obj = p_o(id);
	   if(obj) {
		if (obj.style.display == "none") {
			obj.style.display = "block";
			dropdwn.className = "dropdwn";
		} else {
			obj.style.display = "none";
			dropdwn.className = "drop";
		}
	   }	
	}
}

Skin.setting = function(id) {
	if (window.innerHeight && window.scrollMaxY) {// Firefox
		yWithScroll = window.innerHeight + window.scrollMaxY;
		xWithScroll = window.innerWidth + window.scrollMaxX;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		yWithScroll = document.body.scrollHeight;
		xWithScroll = document.body.scrollWidth;
	} else { // works in Explorer 6 Strict, Mozilla (not FF) and Safari
		yWithScroll = document.body.offsetHeight;
		xWithScroll = document.body.offsetWidth;
  	}
	p_o("setOpac").style.height = yWithScroll+'px'; 
	p_o("setOpac").style.width = xWithScroll+'px'; 
	p_o("setngPop").style.display="block";
	p_o("setOpac").style.display="block";
	p_o("catSel").style.display="none";
}

Skin.close = function() {
	p_o("setngPop").style.display="none";
	p_o("setOpac").style.display="none";
	p_o("cat_drop").className = "drop";
}

Skin.createRequestObject = function() {
	var req;
	if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        if (req.overrideMimeType) req.overrideMimeType('text/html');
    } else if (window.ActiveXObject) { // IE
        try {
            req = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                req = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }
	return req;
}

Skin.userId = "";
Skin.userRating = "";
Skin.componentId = "";
Skin.addonType = "";
Skin.pageNum=1;

Skin.onLoad = function(sp,id,pageNum) {
	Skin.loadComments(sp,id,pageNum);
	Skin.loadUserReview(sp,id);
}
var boxHeight = "200", pagiWidth = "", pagiHeight = "", mnPagiHt="";
Skin.pagiAlign = function() {
	mnPagiHt = $('#skinPagi').height();
	if(mnPagiHt > 24){
		p_o('rgtPagi').style.width = "620px";										
	}	
	var pageLocation = window.location.href;
	if(pageLocation.match("/search") && pageLocation.match("/page")){
		window.scrollTo(0, 350);
	} else if(pageLocation.match("/page")) {
		window.scrollTo(0, 535);
	}
}

Skin.loadComments = function(sp,id,pageNum) {
	var styleL = "width:320px;height:"+boxHeight+"px;";
	var styleH = "margin-top:"+boxHeight/2+"px;";
    p_o('commentModule').innerHTML = "<div class=\"loading\" style=\""+styleL+"\"><img style=\""+styleH+"\" src='"+ cdnUrl +"/main/img/loading.gif'/></div>";
	Skin.pageNum = pageNum;
	var time = new Date();
	var url = Skin.apiUrl+"/"+sp+"/displayComments/"+id+"/page/"+pageNum+"&time="+time;
	ajax_http_request = new Skin.createRequestObject();
	ajax_http_request.onreadystatechange = Skin.onCommentResponseStateChange;
	ajax_http_request.open("GET",url,true);
	ajax_http_request.send(null);
}

Skin.onCommentResponseStateChange = function() {
	try {
		if (ajax_http_request.readyState==4 || ajax_http_request.readyState=="complete") {
			p_o('commentModule').innerHTML = ajax_http_request.responseText;
			pagiHeight = $('#skinDelPagi .skinPagination').height();	
			var DelPagiWdth = $('#skinDelPagi .skinPagination').width();
            if( DelPagiWdth > 185){
            	p_o('skinPagination').style.width = "320px";
            }
			if(pagiHeight > 24){
				p_o('skinPagination').style.width = "320px";										
			}			
		}else{
		}
		boxHeight = $('#commentModule').height();	
	} catch(e) {
		
	}
}

Skin.loadUserReview = function(sp,id) {
	p_o('userReviewModule').innerHTML = "<div class=\"usrComment\"><div class=\"loading\"><img src='"+ cdnUrl +"/main/img/loading.gif'/></div></div>";
	Skin.componentId = id;
	Skin.addonType = sp;
	var time = new Date();
	var url = Skin.apiUrl+"/"+sp+"/getUserReview/"+id+"&time="+time;
	ajax_loadUserReview = new Skin.createRequestObject();
	ajax_loadUserReview.onreadystatechange = Skin.onUserReviewStateChange;
	ajax_loadUserReview.open("GET",url,true);
	ajax_loadUserReview.send(null);
}

Skin.onUserReviewStateChange = function() {
	try {
		if (ajax_loadUserReview.readyState==4 || ajax_loadUserReview.readyState=="complete") {
			var userReviewResponse = ajax_loadUserReview.responseText;
			var splitResponse = userReviewResponse.split("<##UserIdSeparator##>");
			if(splitResponse.length>2) {
				Skin.userId = splitResponse[0].replace(/^\s+|\s+$/, '');
				Skin.userRating = splitResponse[1].replace(/^\s+|\s+$/, '');
				p_o('userReviewModule').innerHTML = splitResponse[2];
			} else {
				Skin.userId = ""; 
				Skin.userRating = "";
				p_o('userReviewModule').innerHTML = splitResponse[0];
			}
			$('#rateQury').ratings(5).bind('ratingchanged');
		}else{
		}
	} catch(e) {
	}
}

Skin.deleteUserReview = function() {
	if(Skin.userId.length<1 || Skin.componentId.length < 0 || Skin.addonType.length < 0) {
		return;
	}
	Skin.retainCommentUi = p_o('userReviewModule').innerHTML;
	p_o('userReviewModule').innerHTML = "<div class=\"usrComment\"><div class=\"loading\"><img src='"+ cdnUrl +"/main/img/loading.gif'/></div></div>";
	if(Skin.userRating.length<0) {
		Skin.userRating="0";
	}
	
	var time = new Date();
	var url = Skin.apiUrl+"/"+Skin.addonType+"/deleteComment/"+Skin.userId+"/"+Skin.componentId+"/"+Skin.userRating.substring(0,1)+"&time="+time;
	ajax_deleteUserReview = new Skin.createRequestObject();
	ajax_deleteUserReview.onreadystatechange = Skin.ondeleteUserReviewStateChange;
	ajax_deleteUserReview.open("GET",url,true);
	ajax_deleteUserReview.send(null);
}

Skin.ondeleteUserReviewStateChange = function() {
	try {
		if (ajax_deleteUserReview.readyState==4 || ajax_deleteUserReview.readyState=="complete") {
			var userReviewResponse = ajax_deleteUserReview.responseText;
			var splitResponse = userReviewResponse.split("<##UserIdSeparator##>");
			if(splitResponse.length>2) {
				Skin.userId = splitResponse[0].replace(/^\s+|\s+$/, '');
				Skin.userRating = splitResponse[1].replace(/^\s+|\s+$/, '');
				var tempUi = splitResponse[2].replace(/^\s+|\s+$/, '');
				if(tempUi=="500") {
					p_o('userReviewModule').innerHTML = Skin.retainCommentUi;
					if(Skin.userRating.length<1) {
						p_o("error0").style.display = "block";
						return;
					} else {
						p_o("error0").style.display = "none";
					}
				} else {
					p_o('userReviewModule').innerHTML = splitResponse[2];
				}
				Skin.retainCommentUi = "";
			} else {
				Skin.userId = ""; 
				Skin.userRating = "";
				var tempUi = splitResponse[0].replace(/^\s+|\s+$/, '');
				if(tempUi=="500") {
					p_o('userReviewModule').innerHTML = Skin.retainCommentUi;
					if(Skin.userRating.length<1) {
						p_o("error0").style.display = "block";
						return;
					} else {
						p_o("error0").style.display = "none";
					}
				} else {
					p_o('userReviewModule').innerHTML = splitResponse[0];
				}
				Skin.retainCommentUi = "";
			}
			Skin.loadComments(Skin.addonType,Skin.componentId,"1");
			$('#rateQury').ratings(5).bind('ratingchanged');
		}else{
		}
	} catch(e) {
	}
}
Skin.checkForTos = function(userId){
	if((userId == 'null') || (userId =="")){
		Skin.setCookie('reqUrl',window.location.href);
		document.location = '/user/present-tos';
	}
}

Skin.setCookie = function(c_name,c_value) {

	var date = new Date();
	date.setTime(date.getTime()+(1*24*60*60*1000));
	var expires = "; expires="+date.toGMTString();
	cookieName = c_name;
	cookieValue = c_value;
	document.cookie = cookieName+"="+cookieValue+expires+"; path=/";
}

Skin.retainCommentUi = "";
Skin.writeUserReview = function() {
	if(Skin.userId.length<1 || Skin.componentId.length < 0 || Skin.addonType.length < 0) {
		return;
	}
	
	if(Skin.userRating.length<1) {
		p_o("error1").style.display = "block";
		return;
	} else {
		p_o("error1").style.display = "none";
	}
	
	var commentText = p_o("comment").value;
	if(commentText.length<1) {
		p_o("error2").style.display = "block";
		return;
	} else {
		p_o("error2").style.display = "none";
	}
	Skin.retainCommentUi = p_o('userReviewModule').innerHTML;
	p_o('userReviewModule').innerHTML = "<div class=\"usrComment\"><div class=\"loading\"><img src='"+ cdnUrl +"/main/img/loading.gif'/></div></div>";
	var time = new Date();
	var url = Skin.apiUrl+"/"+Skin.addonType+"/writeComment/"+Skin.userId+"/"+Skin.componentId+"/"+commentText+"/"+Skin.userRating+"&time="+time;
	ajax_writeUserReview = new Skin.createRequestObject();
	ajax_writeUserReview.onreadystatechange = Skin.onwriteUserReviewStateChange;
	ajax_writeUserReview.open("GET",url,true);
	ajax_writeUserReview.send(null);
}

Skin.onwriteUserReviewStateChange = function() {
	try {
		if (ajax_writeUserReview.readyState==4 || ajax_writeUserReview.readyState=="complete") {
			var userReviewResponse = ajax_writeUserReview.responseText;
			var splitResponse = userReviewResponse.split("<##UserIdSeparator##>");
			if(splitResponse.length>2) {
				Skin.userId = splitResponse[0].replace(/^\s+|\s+$/, '');
				Skin.userRating = splitResponse[1].replace(/^\s+|\s+$/, '');
				var tempUi = splitResponse[2].replace(/^\s+|\s+$/, '');
				if(tempUi=="500") {
					p_o('userReviewModule').innerHTML = Skin.retainCommentUi;
					if(Skin.userRating.length<1) {
						p_o("error0").style.display = "block";
						return;
					} else {
						p_o("error0").style.display = "none";
					}
				} else {
					p_o('userReviewModule').innerHTML = splitResponse[2];
				}
				Skin.retainCommentUi = "";
			} else {
				Skin.userId = ""; 
				Skin.userRating = "";
				var tempUi = splitResponse[0].replace(/^\s+|\s+$/, '');
				if(tempUi=="500") {
					p_o('userReviewModule').innerHTML = Skin.retainCommentUi;
					if(Skin.userRating.length<1) {
						p_o("error0").style.display = "block";
						return;
					} else {
						p_o("error0").style.display = "none";
					}
				} else if(tempUi=="400") {
					p_o('userReviewModule').innerHTML = Skin.retainCommentUi;
					p_o("error2").style.display = "block";
				} else {
					p_o('userReviewModule').innerHTML = splitResponse[0];
					p_o("error2").style.display = "none";
				}
				Skin.retainCommentUi = "";
			}
			Skin.loadComments(Skin.addonType,Skin.componentId,"1");
		}else{
		}
	} catch(e) {
	}
}

jQuery.fn.ratings = function(stars, initialRating) {
	var elements = this;
	return this.each(function() {
    if(!initialRating)
      initialRating = 0;
      var containerElement = this;
	  var container = jQuery(this);
      var starsCollection = Array();
      containerElement.rating = initialRating;
      container.css('overflow', 'auto');
      for(var starIdx = 0; starIdx < stars; starIdx++) {
          var starElement = document.createElement('div');
          var star = jQuery(starElement);
	      starElement.rating = starIdx + 1;
          star.addClass('jquery-ratings-star');
 	      if(starIdx < initialRating) {
    	    star.addClass('jquery-ratings-full');
      	  }
      container.append(star);
      starsCollection.push(star);
      star.click(function() {
        elements.triggerHandler("ratingchanged", {rating: this.rating});
        containerElement.rating = this.rating;
		Skin.userRating = this.rating;
		 for(var index = 0; index < containerElement.rating; index++) {
          starsCollection[index].addClass('jquery-ratings-hover');
        }	
		for(var index = containerElement.rating; index < stars ; index++) {
          starsCollection[index].removeClass('jquery-ratings-hover');
        }		
      });      
      star.mouseenter(function() {
       	Skin.checkForTos(Skin.userId);
        for(var index = 0; index < this.rating; index++) {
          starsCollection[index].addClass('jquery-ratings-full');
        }
        for(var index = this.rating; index < stars; index++) {
          starsCollection[index].removeClass('jquery-ratings-full');
        }
      });
       container.mouseleave(function() {
        for(var index = 0; index < containerElement.rating; index++) {
          starsCollection[index].addClass('jquery-ratings-full');
        }
        for(var index = containerElement.rating; index < stars ; index++) {
          starsCollection[index].removeClass('jquery-ratings-full');
        }
      });
    }
  });
};

//SNS

function snsSignInWidget(divIdName) {
	if(isWidgetOpened) {
		return;
	}
	var snsPopUp = document.getElementById("snsPopUp");
	var snsBody = p_o("snsBody");
	var objectOfDiv =  p_o(divIdName);
	leftOffSet = findPositionX(objectOfDiv);
    topOffSet = findPositionY(objectOfDiv);
	snsBody.innerHTML = _sns_var_;
	snsPopUp.style.left = leftOffSet - 5 + 'px';
	snsPopUp.style.top =  topOffSet - 23 + 'px';
	snsPopUp.style.zIndex = 9999;
	slideDown();
}

function findPositionX(obj){
	var left=0;
	if(obj.offsetParent){
		while(obj.offsetParent){
			left+=obj.offsetLeft;
			obj=obj.offsetParent;
		}
	} else if(obj.x) left+=obj.x;
	return left;
}
function findPositionY(obj) {
	var top=0;
	if(obj.offsetParent){
		while(obj.offsetParent){
			top+=obj.offsetTop;
			obj=obj.offsetParent;
		}
	} else if(obj.x) top+=obj.y;
	return top;
}


function slideDown(){
	isWidgetOpened = true;
	p_o("snsPopUp").style.display ="block";
	//$("div#snsPopUp").fadeIn(2000,'');
}

function closeWidget(objectId) {
	isWidgetOpened = false;
	p_o("snsPopUp").style.display="none";
}

//SNS End

