this.openEbookTime = 0;		//최초 전자책 클릭 시간
this.startTimer = 0;
this.currentPage = 0;
this.pageTime = new Array();	//페이지 타임
this.pageCnt = new Array();		//페이지 뷰어 횟수
this.printPageCnt = new Array();	//프린터 횟수
this.viewMode = '';
this.zeroPage = false;
this.bookCode = '';
this.totalPage = 0;

var report = function(actionType , recentPage , targetPage , currentTime , bookCode, viewMode, zeroPage, totalPage)
{
/*
	alert("actionType	: " + actionType + "\n"  +
	"recentPage	: " + recentPage + "\n"  + 
	"targetPage	: " + targetPage + "\n"  +
	"currentTime	: " + currentTime + "\n"  +
	"bookCode	: " + bookCode + "\n"  +
	"zeroPage	: " + zeroPage + "\n"  +
    "totalPage	: " + totalPage + "\n"  +
	"viewMode	: " + viewMode
	);
*/

	switch(actionType)
	{
		case "bookComplete" :
            this.totalPage = totalPage;
			this.openEbookTime = currentTime;
			bookComplete(recentPage,targetPage,currentTime,bookCode,viewMode,zeroPage);
			break;
		case "afterFlip" :
			afterFlip(recentPage,targetPage,currentTime,viewMode,zeroPage);
			break;
		case "pagePrevious" :
			setCurrentPage(targetPage);
			break;
		case "pageNext" :
			setCurrentPage(targetPage);
			break;
		case "printStart" :
			setPrintPageCnt(targetPage,viewMode,zeroPage);
			break;
		case "linkEditON" :
			break;
	}

}



//변수 초기화
var init = function(bookCode,viewMode,zeroPage)
{
	this.bookCode = bookCode;
	this.viewMode = viewMode;
	this.zeroPage = zeroPage;
}

var pageResult = function(recentPage)
{
    var pageno = 1;
    var bookcode = this.bookCode;
	var viewMode = this.viewMode;
        
    pageno = recentPage;
    if(viewMode == 'book')
    {
        if(zeroPage == true)
        {
            //만약 zeroPage가 true이고 짝수 페이지이면 -1을 해줌
            if(recentPage % 2 == 0) recentPage = recentPage - 1;
            
            var pageno2 = recentPage + 1;
            if(pageno2 < this.totalPage) pageno = recentPage+','+pageno2;
            else pageno = recentPage;
        }
        else pageno = recentPage;
    }

    $.ajax({
		type: "POST",
		url: "/Web/Crm/c=call_page_url",
		data: {bookcode : bookcode , page : pageno , call_page_url : puzzle.call_page_url},
		error: function(){
			alert('Error loading XML document');
   		},
		success: function(xml){
            //alert(xml);
            //var result = $.xml2json(xml);
		}
	});
}

var sendResult = function()
{
	var bookcode = this.bookCode;
	var viewMode = this.viewMode;
	var zeroPage = this.zeroPage;
	var openebooktime = this.openEbookTime;
	
	//창닫을시 최종 시간을 보내기 위해 필요한 변수
	var vtime= new Date();
	closeTime = vtime.getTime();
	
	//페이지에 뷰어시간 담기
	setPageTimer(closeTime,viewMode,zeroPage);

	var pagetime = arrTojson(this.pageTime);
	var pagecnt = arrTojson(this.pageCnt);
	var printpagecnt = arrTojson(this.printPageCnt);
	
	
	//창을 열자마자 닫으면 CRM기록 할 필요가 없슴
	if(pagetime == '[0]') return false;
	
	$.ajax({
		type: "POST",
		url: "/Web/Crm",
		async: false,
		data: {page_time : pagetime , page_cnt : pagecnt , print_page_cnt : printpagecnt , 
			open_ebook_time : openebooktime , bookcode : bookcode },
		error: function(){
			alert('Error loading XML document');
   		},
		success: function(xml){
			//var result = $.xml2json(xml);
		}
	});
	
	
	//alert(resultJSON);
}

//북 오픈 함수
var bookComplete = function(recentPage,targetPage,currentTime,bookCode,viewMode,zeroPage)
{
	//변수 초기화
	init(bookCode,viewMode,zeroPage);
	
	//시작 시간 설정
	this.startTimer = currentTime;
	
	//페이지 초기화
	setCurrentPage(targetPage,viewMode,zeroPage);
	
	//페이지 카운트
	setPageCnt(targetPage,viewMode,zeroPage);
    
    //만약 call_page_url값이 있다면
    if(puzzle.call_page_url) pageResult(recentPage,totalPage);
}

var afterFlip = function(recentPage,targetPage,currentTime,viewMode,zeroPage)
{
	//페이지에 뷰어시간 담기
	setPageTimer(currentTime,viewMode,zeroPage);
	
	//현 페이지 초기화
	setCurrentPage(targetPage,viewMode,zeroPage);
	
	//페이지 카운트
	setPageCnt(targetPage,viewMode,zeroPage);
    
    //만약 call_page_url값이 있다면
    if(puzzle.call_page_url) pageResult(recentPage);
}

var arrTojson = function(arg)
{
	var resultJSON = '[';
	for(var i=0; i<arg.length; i++)
	{
		if(arg[i]) resultJSON += arg[i];
		else resultJSON += "0";
		
		if(i < arg.length - 1) resultJSON += ",";
	}
	resultJSON += "]";
	
	return resultJSON;
}


//페이지 뷰어 횟수 올리기
var setPageCnt = function(page,viewMode,zeroPage)
{
	if(this.pageCnt[page]) this.pageCnt[page] += 1;
	else this.pageCnt[page] = 1;
	
	//양면 형태이고
	if(viewMode == 'book')
	{
		//페이지가 1페이지이면서
		if(page == 1)
		{
			//zeroPage(true)를 사용하고 있으면 양쪽 페이지 횟수올리기
			if(zeroPage == true)
			{
				if(this.pageCnt[page+1]) this.pageCnt[page+1] += 1;
				else this.pageCnt[page+1] = 1;
			}
		}
		//페이지가 1페이지가 아니면 모든 페이지에서 양쪽 페이지 횟수 올리기
		else
		{
			if(this.pageCnt[page+1]) this.pageCnt[page+1] += 1;
			else this.pageCnt[page+1] = 1;
		}
	}
}


//프린터 페이지 횟수 올리기
var setPrintPageCnt = function(page,viewMode,zeroPage)
{
	if(this.printPageCnt[page]) this.printPageCnt[page] += 1;
	else this.printPageCnt[page] = 1;
	
	//양면 형태이고
	if(viewMode == 'book')
	{
		//페이지가 1페이지이면서
		if(page == 1)
		{
			//zeroPage(true)를 사용하고 있으면 양쪽 페이지 프린터 횟수올리기
			if(zeroPage == true)
			{
				if(this.printPageCnt[page+1]) this.printPageCnt[page+1] += 1;
				else this.printPageCnt[page+1] = 1;
			}
		}
		//페이지가 1페이지가 아니면 모든 페이지에서 양쪽 페이지 프린터 횟수 올리기
		else
		{
			if(this.printPageCnt[page+1]) this.printPageCnt[page+1] += 1;
			else this.printPageCnt[page+1] = 1;
		}
	}
}





//현 페이지배열에 뷰어시간 담기
var setPageTimer = function(currentTime,viewMode,zeroPage)
{
	//페이지 이동시 경과시간 구하기
	var moveTimer = getTimer(currentTime);
		
	//이동전 페이지의 시간에 머문 시간을 더함
	moveTimer = this.pageTime[this.currentPage] + moveTimer;
	
	//이동전 페이지의 머문시간을 설정
	this.pageTime[this.currentPage] = moveTimer;
	
	//양면 형태이고
	if(viewMode == 'book')
	{
		//페이지가 1페이지이면서
		if(this.currentPage == 1)
		{
			//zeroPage(true)를 사용하고 있으면 양쪽 페이지 시간올리기
			if(zeroPage == true)
			{			
				this.pageTime[this.currentPage+1] = moveTimer;
			}
		}
		//페이지가 1페이지가 아니면 모든 페이지에서 양쪽 페이지 시간올리기
		else
		{
			this.pageTime[this.currentPage+1] = moveTimer;
		}
	}
	

}

//페이지 초기화
var setCurrentPage = function(targetPage,viewMode,zeroPage)
{
	//현재 페이지
	this.currentPage = targetPage;
	if(!this.pageTime[targetPage]) this.pageTime[targetPage] = 0;
	
	//양면 형태이고
	if(viewMode == 'book')
	{
		//페이지가 1페이지이면서
		if(this.currentPage == 1)
		{
			//zeroPage(true)를 사용하고 있으면 양쪽 페이지 시간올리기
			if(zeroPage == true)
			{
				if(!this.pageTime[targetPage+1]) this.pageTime[targetPage+1] = 0;
			}
		}
		//페이지가 1페이지가 아니면 모든 페이지에서 양쪽 페이지 시간올리기
		else
		{
			if(!this.pageTime[targetPage+1]) this.pageTime[targetPage+1] = 0;
		}
	}

}

//이전 페이지뷰 타임 구하기
var getTimer = function(currentTime)
{
	//페이지 이동시간 구함
	var cTimer = currentTime - this.startTimer;
	cTimer = cTimer / 1000;
	//현재 시간을 재구성함
	this.startTimer = currentTime;
	
	return cTimer;
}

$(window).bind("beforeunload", function(e){ sendResult(); });
