﻿/*
script name : cpc_script.js
script definition : site check & cgscr include
script version : V5
script register : 2009.07.01
script writer : sky (mini0557@nate.com)
*/

if(typeof cpcguard == 'undefined'){

	var cpcguard = new Object();

	cpcguard = {
		isReady : false,
		readyList : [],
		ready : function(){try{if(!this.isReady){this.isReady = true; if(this.readyList){for(var i in this.readyList){this.readyList[i].call();}this.readyList = null;}}}catch(e){}}
	}

	cpcguard.complete = /complete|loaded/i;

	cpcguard.loader = {
		bind : function(){
			try{
				// Mozilla, Opera and webkit nightlies currently support this event
				if (document.addEventListener){document.addEventListener('DOMContentLoaded', function(){document.removeEventListener( 'DOMContentLoaded', arguments.callee, false ); cpcguard.ready();}, false );}
				// If IE event model is used
				else if(document.attachEvent){
					document.attachEvent('onreadystatechange', function(){if(cpcguard.complete.test(document.readyState)){document.detachEvent('onreadystatechange', arguments.callee); cpcguard.ready();}});
					if(window.attachEvent){window.attachEvent('onload', function(){if(cpcguard.complete.test(document.readyState)){document.detachEvent('onload', arguments.callee); cpcguard.ready();}});}
					if(document.readyState){if(cpcguard.complete.test(document.readyState)){cpcguard.ready();}}
				}
				else{(function(){if(!arguments.callee.done && cpcguard.complete.test(document.readyState)){arguments.callee.done = true; cpcguard.ready();}else{setTimeout(arguments.callee, 10);}})();}

				(function(){if(!arguments.callee.done && cpcguard.complete.test(document.readyState)){arguments.callee.done = true; cpcguard.ready();}else{setTimeout(arguments.callee, 10);}})();

			}catch(e){(function(){if(!arguments.callee.done && cpcguard.complete.test(document.readyState)){arguments.callee.done = true; cpcguard.ready();}else{setTimeout(arguments.callee, 10);}})();}
		 }
	 }


	 cpcguard.includer = {
		exist : function(id){
			try{return document.getElementById(id);}catch(e){return false;}
		},
		include: function(type,url,id,isCacheID,charset,method,time){
			try{
					if(this.exist(id)){return true;}
					(
						function(){
							var _head = document.getElementsByTagName('head')[0] || document.documentElement;
							if(_head){
								if(isCacheID){url = (url.indexOf('?') > -1) ? url + '&noCacheIE=' + (new Date()).getTime() :  url + '?noCacheIE=' + (new Date()).getTime();}
								var _script;
								if(type == "style"){_script = document.createElement('link'); _script.type='text/css'; _script.rel='stylesheet'; _script.charset= charset || 'utf-8'; _script.href = url; _script.media='screen';}
								else if(type == "javascript"){_script = document.createElement('script'); _script.type='text/javascript'; _script.language='javascript'; _script.charset= charset || 'utf-8'; _script.src= url;}
								_script.id=id;
								_script.onload = _script.onreadystatechange = 
									function(){if(!arguments.callee.done && (!this.readyState || cpcguard.complete.test(this.readyState))){arguments.callee.done=true;this.onload = this.onreadystatechange = null; if(method){if(time){setTimeout(method,time);}else{setTimeout(method,10);}}}}
								_head.insertBefore(_script, _head.firstChild);
							}else{setTimeout(arguments.callee, 10);}
						}
					)();
					return true;
			}catch(e){return false;}
		},
		readystate : function(object,method,time){
			try{
				if(object.readyState){object.onreadystatechange = function(){if(!arguments.callee.done && (!this.readyState || cpcguard.complete.test(this.readyState))){arguments.callee.done=true; this.onload = this.onreadystatechange = null; if(method){if(time){setTimeout(method,time);}else{method()}}}}}
				else{object.onload = function(){if(method){if(time){setTimeout(method,time);}else{method()}}}}
			}catch(e){object.onload = function(){if(method){if(time){setTimeout(method,time);}else{method()}}}}
		}
	 }

	cpcguard.ajax = {
		dynamicQuery: function(url,isCacheID,charset){
			try{
					(function(){
						var _head = document.getElementsByTagName('head')[0] || document.documentElement;
						if(_head){
							if(isCacheID){url = (url.indexOf('?') > -1) ? url + '&noCacheIE=' + (new Date()).getTime() :  url + '?noCacheIE=' + (new Date()).getTime();}

							var _script = document.createElement('script'); _script.type='text/javascript'; _script.charset= charset || 'utf-8'; _script.src = url;
							_script.onload = _script.onreadystatechange = 
								function(){if(!arguments.callee.done && (!this.readyState || cpcguard.complete.test(this.readyState))){arguments.callee.done=true; this.onload = this.onreadystatechange = null; _head.removeChild(this);}}
							_head.insertBefore(_script, _head.firstChild);
						}else{setTimeout(arguments.callee, 10);}
					})();
			}catch(e){}
		}
	}

	cpcguard.domain = function(){
		try{
			var _domain_list = new Array('.CO.KR','.CO.IN','.OR.KR','.PE.KR','.NE.KR','.GO.KR','.AC.KR','.HS.KR','.MS.KR','.ES.KR','.KG.KR','SC.KR','.COM','.NET','.ORG','.BIZ','.KR','.IN','.TV','.AC','.TW','.EU','.CC');
			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(!info[i]){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.setYear(_expires.getYear() + 1); 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;}
		}
	}

	var cpc_service = {analysis:'1',conversion:'1',son:'0',spopup:'0',clickpoint:'0'};
	var cpc_siteid = '', cpc_domain = '', cpc_userip='', cpc_timeset='';

	window.onerror = function(){return true;}

	if(!document.body){document.write("<body></body>");};
	if(document.URL.indexOf("cpcguard_Login=Y") < 0){
		cpc_domain = cpcguard.domain();

		cpcguard.includer.include('javascript', 'http://img.cpcguard.com/siteInfo/'+document.domain+'.js','include_cpc_service', true, null);
	}

	
	function cpc_analysis_service(){
		if(cpc_site){
			if(cpc_site.serviceYN == 'Y'){
				cpc_siteid = cpc_site.siteID;
				cpc_service.analysis = cpc_site.script.charAt(0); cpc_service.conversion = cpc_site.script.charAt(1); cpc_service.son = cpc_site.script.charAt(2); cpc_service.spopup = cpc_site.script.charAt(3); cpc_service.clickpoint = cpc_site.script.charAt(4);

				cpcguard.ajax.dynamicQuery('http://sc1.cpcguard.com/v6/getCode_1.aspx',true,'utf-8'); 
			}
		}
	}

	function cpc_analysis_bind(receiveData){
		try{
			cpc_userip = receiveData.ip; cpc_timeset = receiveData.timeset;
			cpcguard.includer.include('javascript','http://sc1.cpcguard.com/v6/customer/kisa/cgscr.js','include_cpc_cgscr', false,'utf-8');
		}catch(e){}
	}
}


