﻿/*
script name : cpc_redirect.js
script definition :  client-side redirect process    ~ server-side redirect is not necessary  the connection url sets are necessary )  
script version : V5
script register : 2009.10.20
script writer : sky (mini0557@nate.com)
*/

if(typeof cpcguard == 'undefined'){var cpcguard = new Object();}

cpcguard.domain = function(){try{var _domain_list = new Array('.AC.KR', '.ES.KR', '.GO.KR', '.HS.KR', '.KG.KR', '.MS.KR', '.NE.KR', '.OR.KR', '.PE.KR', '.SC.KR', '.CO.IN', '.CO.KR', '.CO.CM', '.CO.NZ', '.CO.UK', '.COM.AG', '.COM.CM', '.COM.CN', '.COM.HN', '.COM.KI', '.COM.LC', '.COM.MU', '.COM.MX', '.COM.NF', '.COM.PH', '.COM.PK', '.COM.PL', '.COM.SB', '.COM.SC', '.COM.TW', '.COM.VC', '.COM.VN', '.ORG.CN', '.ORG.HN', '.ORG.IN', '.ORG.KI', '.ORG.LC', '.ORG.LI', '.ORG.MU', '.ORG.NZ', '.ORG.UK', '.NET.AG', '.NET.CN', '.NET.CM', '.NET.HN', '.NET.IN', '.NET.KI', '.NET.LC', '.NET.MU', '.NET.NF', '.NET.NZ', '.NET.PH', '.NET.PK', '.NET.PL', '.NET.SB', '.NET.SC', '.NET.VC', '.FIRM.IN', '.GEN.IN', '.IND.IN', '.ME.UK', '.BIZ.PL', '.INFO.PL', '.ORG.PH', '.ORG.PK', '.ORG.PL', '.ORG.SB', '.ORG.SG', '.ORG.SC', '.ORG.TW', '.ORG.VC', '.CLUB.TW', '.EBIZ.TW', '.GAME.TW', '.IDV.TW', '.COM', '.NET', '.KR', '.MOBI', '.JOBS', '.TRAVEL', '.ORG', '.BIZ', '.INFO', '.TEL', '.ME', '.CN', '.ASIA', '.NAME', '.TV', '.CC', '.JP', '.IN', '.US', '.FR', '.HK', '.EU', '.DE', '.AC', '.AG', '.AM', '.AT', '.BE', '.BZ', '.CH', '.CX', '.CZ', '.ES', '.FM', '.GD', '.GS', '.HN', '.IM', '.IO', '.KI', '.LA', '.LC', '.LU', '.MD', '.MN', '.MS', '.MU', '.NF', '.NU', '.PH', '.PK', '.PL', '.SC', '.SG', '.SH', '.TC', '.TK', '.TM', '.TL', '.TW', '.VC', '.VG', '.WS'); var _domain = document.domain; for(var i = 0; i < _domain_list.length; i++){var _index = _domain.toUpperCase().indexOf(_domain_list[i]); if(_index > 0){var _split = _domain.split('.'); var _length = _split.length; var _domainlength = (_domain_list[i].split('.')).length; if(_domainlength == 3){if(_length > 2){return _split[_length-3] + '.' + _split[_length-2] + '.' +_split[_length-1];}}else if(_domainlength==2){if(_length > 1){return _split[_length-2] + '.' +_split[_length-1];}}}}return _domain;}catch(e){return document.domain;}}

cpcguard.cookie = {
	setCookie: function(name,value,domain,expires,path,secure){try{document.cookie = name + '=' + escape (value) + ((expires == null) ? '' : ('; expires=' + expires.toGMTString())) + ((path == null) ? '; path=/' : ('; path=' + path)) +  ((domain == null) ? '' : ('; domain=' + domain)) + ((secure == true) ? '; secure' : '');}catch(e){}},
	getCookie: function(name,defaultValue){try{var _cookies = document.cookie.split('; '); for(var i=0; i < _cookies.length; i++){var args = _cookies[i].split('='); if(name == args[0]){if(args.length==1){return '';}else{return unescape(args[1]);}}}return defaultValue == null ? null : defaultValue;}catch(e){return null;}},
	makeCookie : function(info){try{if(info){var cookie = "{"; for(var i in info){if(typeof(info[i]) == 'function'){ continue;} if(info[i] == null || typeof(info[i]) == 'undefined'){cookie += '"' + i + '":null,';}else if(typeof(info[i])  == 'number'){cookie += '"' + i + '":' + info[i] + ',';}else{cookie += '"' + i + '":"' + info[i] + '",';}}return cookie.substring(0,cookie.length-1) + "}";}return "";}catch(e){return "";}},
	getUserCookie : function(name){try{var _cookie =  this.getCookie('CPC_' + name); if(_cookie){return  eval('('+ _cookie+')');}else{return null;}}catch (e){return null;}},
	setUserCookie : function(type,name,object,domain){try{if(type == 'global'){var _expires = new Date(); _expires.setDate(_expires.getDate() + 365); this.setCookie('CPC_' + name, this.makeCookie(object), domain,_expires);}else{this.setCookie('CPC_' + name, this.makeCookie(object), domain);}}catch(e){return null;}},
	deleteCookie : function(name,object,domain){try{var _expires = new Date(); _expires.setDate( _expires.getDate() - 1 ); this.setCookie('CPC_' + name, object, domain,_expires);}catch (e){return null;}}
}

cpcguard.util = {
	index:function(value,comparechar){return value.indexOf(comparechar);},
	lastCharCompareRemove:function(value,comparechar){try{var _index = value.length-1; if(value.charAt(_index) == comparechar){return value.substring(0,_index);} return value;}catch(e){return '';}},
	compareSplitBefore: function(value,comparechar){try{if(value.indexOf(comparechar) < 0 ){return value;}return value.split(comparechar)[0];}catch(e){return '';}},
	compareSplitAfter: function(value,comparechar){try{var _index = value.indexOf(comparechar); if(_index < 0 ){return '';} return value.substring(_index+comparechar.length,value.length);}catch(e){return '';}},
	left: function(value,index){try{if(index <= 0){return '';}else if(index > String(value).length){return value;}else{return String(value).substring(0,index);}}catch(e){return '';}},
	getUrl: function(value){try{if(/http%3a\/\/|https%3a\/\//i.test(value)){value=unescape(value);}else if(/http%3a%2F%2F|https%3A%2F%2F/i.test(value)){try{value=decodeURIComponent(value);}catch(e){}} if(value !='' && value.charAt(0).toUpperCase()=='H' && value.indexOf('://') > -1 ){value = this.compareSplitAfter(value,'://');} value = this.lastCharCompareRemove(this.compareSplitBefore(value,'#'),'/'); return (value.indexOf('%u') > -1) ? unescape(value) : value;}catch(e){return '';}},
	getDomain: function(value){try{return this.compareSplitBefore(this.compareSplitBefore(value,'/'),':');}catch(e){return '';}}
}

cpcguard.common = {
	cookieEnabled : function(){try{cpcguard.cookie.setCookie('exist','exist');if(cpcguard.cookie.getCookie('exist')){return true;}else{return false;}}catch(e){return false;}},
	uniqueID: parseInt((document.uniqueID) ? document.uniqueID.replace(/ms__id/gi,'') : 0), /*'ms_id1'*/
	frameset : function(){var _target = null; var _exist = false; try{if(top && typeof(top) == "object" && top.frames.length){_exist = true; if(typeof(top.document) != "unknown"){_target = top;}}else if(parent && typeof(parent) == "object" && parent.frames.length){_exist = true; if(typeof(parent.document) != "unknown"){_target = parent;}}}catch(e){} return {exist : _exist, target : _target}},
	firstVisit: function(){try{if(cpc_connect.firstID == null){cpc_connect.firstID = this.uniqueID; return true;}else{if(navigator.cookieEnabled){if(this.uniqueID==0){/*fireFox*/ return false;}else{/*IE*/ if(this.uniqueID  <= parseInt(cpc_connect.firstID)){return true;}else if(this.uniqueID  > parseInt(cpc_connect.firstID)){return false;}else{return (history.length==0) ? true : false;}}}else{return  (history.length==0) ? true : false;}}}catch(e){return true;}},
	urlInfo: function(type,influx){var _url = '',_search = '',_domain = ''; try{if(type=='local'){if(influx){_url = top.document.URL || parent.document.URL || document.URL;}else{_url = document.URL;}}else{if(influx){try{_url = top.document.referrer || parent.document.referrer || document.referrer}catch(e){} try{if(! _url){if(top && typeof(top) == "object"){if(typeof(top.document) != "unknown"){_url = top.document.referrer;}}}}catch(e){} try{if(! _url){if(parent && typeof(parent) == "object"){if(typeof(parent.document) != "unknown"){_url = parent.document.referrer;}}}}catch(e){} try{if(! _url){_url = document.referrer || 'bookmark';}}catch(e){} var _frame = this.frameset(); if(_frame && _frame.exist){try{if(_url == _frame.target.document.URL){_url = 'bookmark';}}catch(e){}} cpc_connect.influxUrl = _url;}else{var _referrer = cpc_connect.beforeUrl; if(_referrer ==  document.URL){_url = document.URL;}else{if(document.referrer){_url = document.referrer; var _frame = this.frameset(); if(_frame && _frame.exist){try{if(document.referrer == _frame.target.document.URL){_url = _referrer;}}catch(e){}}}else{_url = _referrer;}}}}}catch(e){_url = (type == 'local') ? document.URL : document.referrer || 'bookmark';} _url = cpcguard.util.getUrl(_url); _search = cpcguard.util.compareSplitAfter(_url,'?'); _domain = (type == 'local') ? document.domain : cpcguard.util.getDomain(_url); return {domain:_domain,url:_url,search:_search};}	
}


try{
	var cpc_domain = cpcguard.domain();
	var cpc_connect = cpcguard.cookie.getUserCookie('CONNECT');
	var cpc_site = cpcguard.cookie.getUserCookie('SITEINFO');
	if(!cpc_connect){cpc_connect = {redirect : 'N' , firstID : null , influxUrl : null , beforeRef : null , beforeUrl : null , visit : null, unfaircode : ''};}

	// S - ANALYSIS PROCESS 
	var cpc_isinflux = cpcguard.common.firstVisit();
	var cpc_url = cpcguard.common.urlInfo('local',cpc_isinflux);
	var cpc_referrer = cpcguard.common.urlInfo('referrer',cpc_isinflux);

	if(cpc_isinflux){try{var _isbookmark = false; if(cpc_site){if(cpc_site.domainList){var _domainList = cpc_site.domainList.split(','); for(var i = 0; i < _domainList.length; i++ ){if(_domainList[i] == cpc_referrer.domain){_isbookmark = true; break;}}}}else{if(cpc_url.domain == cpc_referrer.domain){_isbookmark = true;}}if(_isbookmark){cpc_connect.influxUrl = 'bookmark'; cpc_isinflux = false;}}catch(e){}}
	if(cpc_isinflux){cpc_connect.redirect = 'Y'; cpc_connect.unfaircode='';}
	cpc_connect.beforeUrl = document.URL;
	try{cpcguard.cookie.setUserCookie('local','CONNECT', cpc_connect, cpc_domain);}catch(e){}

}catch(e){}