//Created On 21/09/2010
//Created by Pankaj, for mantis issue 000054
//The JS contains code for the eReader.
//Reference: http://malsup.com/jquery/cycle/add6.html, http://wiki.github.com/can3p/iviewer/
//This file had major modifications done on 19/11/2010 by Pankaj, for 000054_other_tasks.docx – Point # 63. Backup @ C:\Documents and Settings\wireframe\Desktop\herd_bk\19112010\high_tech\Js

//added = 0 for 000054_other_tasks.docx - point # 10 & 11. Dt: 13/10/2010
var currPageNum = 0;
var flg = 1;

var prevVisitedPage;
//Added by Pankaj, for magnifier tool issue in IE. Dt: 18/10/2010
var currImgWidth;
var currImgHeight;
var defHeight;
var timerID_1;
var timerID_2;
var nextadJpegWidth ;
var nextadJpegHeight;
function addJpegsDynamically(httpUrl, paperJpegsPath, paperJpegsPathHttp, fileName, pageCount, preLoadPageNum, isLoader)
{
    $.getJSON(httpUrl+'getPaperJpegs.php', {'paperJpegsPath' : paperJpegsPath, 'paperJpegsPathHttp' : paperJpegsPathHttp, 'fileName' : fileName, 'pageCount' : pageCount, 'defaultHeight' : defHeight, 'preLoadPageNum' : preLoadPageNum, 'isLoader' : isLoader, 'gJsPaperId' : gJsPaperId}, startReader);
}

function startReader(jpegs)
{
	var totalJpegsCount = 1 + jpegs.length;

	var $eReader = $('.eReader');

	var jpgArr = new Array();
	var jpgWidthArr = new Array();
	var jpgHeightArr = new Array();
	var jpgNameArr = new Array();

	$.each(jpegs, function(slInd, slVal) {
  		$.each(slVal, function(jpInd, jpVal) {

  			if (jpInd == 'jpg')
  			{
  				jpgArr[slInd] = jpVal;
  			}
  			else if (jpInd == 'jpg_width')
  			{
  				jpgWidthArr[slInd] = jpVal;
  			}
  			else if (jpInd == 'jpg_height')
  			{
  				jpgHeightArr[slInd] = jpVal;
  			}
  			else if (jpInd == 'jpg_name')
  			{
  				jpgNameArr[slInd] = jpVal;
  			}
  		});
	});

	//Commented to prevent prepending the last jpeg of the array returned by getPaperJpegs.php. Dt: 23/09/2010
	//Comment removed by Pankaj, for 000054_beta_plan.xlsx: task # 5. Dt: 07/10/2010 - start
	var prevJpgName = jpgNameArr.pop();
	var prevJpgSrc = jpgArr.pop();
	var prevJpgWidth = jpgWidthArr.pop();
	var prevJpgHeight = jpgHeightArr.pop();

	$eReader.prepend('<img src="'+prevJpgSrc+'" width="'+prevJpgWidth+'" height="'+prevJpgHeight+'" id="'+prevJpgName+'" />');
	//Comment removed by Pankaj, for 000054_beta_plan.xlsx: task # 5. Dt: 07/10/2010 - start

	var nextJpgName = jpgNameArr.shift();
	var nextJpgSrc = jpgArr.shift();
	var nextJpgWidth = jpgWidthArr.shift();
	var nextJpgHeight = jpgHeightArr.shift();

	if (nextJpgName != undefined)
	{
		$eReader.append('<img src="'+nextJpgSrc+'" width="'+nextJpgWidth+'" height="'+nextJpgHeight+'" id="'+nextJpgName+'" />');
	}

	$('.eReader').cycle(
	{
		fx:            'scrollHorz',
		startingSlide: 1,
		timeout:       0,
		speed:         500,
		prev:          '#prev',
		next:          '#next',
		before:        onBefore,
		after:         onAfter
	});

	function onBefore(curr, next, opts, fwd)
	{
		/*
		if(next.id.match(/banner_ad(\d)/))
		{
			
			var adDestUrl = 'http://www.wesrch.com/';
			var txtDivValue = document.getElementById('textContent').innerHTML;
			var paperId = document.comment.category_paper_master_id.value;
			var paperType = document.comment.paper_type.value;
			next.src = '/Images/loading_ereader.jpg';
			$.ajax({
				type: "POST",
				url: "/getEreaderBannerAds.php",
				data: "pageContent=" + escape(txtDivValue) +
						"&paperId=" + paperId + "&paperType=" + paperType + "&currPageNum=" + currPageNum + "&paperJpegsPathHttp=" + paperJpegsPathHttp,
				success: function(html){
					//alert(html);
					var myObject = eval('(' + html + ')');
					//alert(myObject.adFound);
					//next.onclick = window.open('http://www.google.com/');
					if(myObject.adFound==1) {
						next.src = myObject.imgSrc;
						next.title = myObject.adTitle;
						next.alt = myObject.adDesc;
						adDestUrl = myObject.destUrl;
						document.getElementById('ad_id').value = myObject.adId;
					} else {
						next.src = 'http://www.wesrch.com/Images/logoWeSRCH.jpg';
						next.title = 'http://www.wesrch.com/Images/logoWeSRCH.jpg';
						next.alt = 'http://www.wesrch.com/Images/logoWeSRCH.jpg';
						adDestUrl = 'http://www.wesrch.com/';
					}
				}
			});
			$('#'+next.id).css('cursor', 'pointer');
			$('#'+next.id).unbind('click').click(function() { window.open(adDestUrl); return false; });
		} 
		*/
		// on the first pass, addSlide is undefined (plugin hasn't yet created the fn yet)
		if (!opts.addSlide)
		{
			return;
		}

		if (opts.slideCount == totalJpegsCount)
		{
			return;
		}

		var nextJpegSrc = fwd ? jpgArr.shift() : jpgArr.pop();
		var nextJpegWidth = fwd ? jpgWidthArr.shift() : jpgWidthArr.pop();
		var nextJpegHeight = fwd ? jpgHeightArr.shift() : jpgHeightArr.pop();
		var nextJpegName = fwd ? jpgNameArr.shift() : jpgNameArr.pop();
                nextadJpegWidth =  nextJpegWidth;
                nextadJpegHeight = nextJpegHeight;

		opts.addSlide('<img src="'+nextJpegSrc+'" width="'+nextJpegWidth+'" height="'+nextJpegHeight+'" id="'+nextJpegName+'" />', fwd == false);
	};
}

function onAfter(curr, next, opts, fwd)
{
	/*alert('Current id: ' + curr.id);
	alert('Next id: ' + next.id);
	alert('prevVisitedPage: ' + prevVisitedPage);*/
	/*var bannerAdNotDispalyed = 1;
	if(next.id.match(/banner_ad(\d)/)) {
		//alert('Next will be banner ad');
		bannerAdNotDispalyed = 0;
	}

	var currBannerAdDispalyed = 0;
	if(curr.id.match(/banner_ad(\d)/)) {
		currBannerAdDispalyed = 1;
	}*/

	//alert(idCnt);
	//Added by Pankaj, for magnifier tool issue in IE. Dt: 18/10/2010
	if(!next.id.match(/banner_ad(\d+)_[A-Za-z0-9]/))
	{
		//$('#firstActionRow').css('visibility', 'visible');
		//$('#selGoToPg').css('visibility', 'visible');
		$('.diff2').css('display', 'none');
		$('#selGoToPg').css('display', '');
		//$('#secondActionRow').css('visibility', 'visible');
		$('.diff4').css('visibility', 'visible');
		$('.diff3').css('display', 'block');
		$('.diff1').css('display', 'none');
	/*alert('Current id: ' + curr.id);
	alert('Next id: ' + next.id);
	alert('fwd: ' + fwd);*/
	//Added by Pankaj, for magnifier tool issue in IE. Dt: 18/10/2010
	currImgWidth = $('#'+next.id).attr('width');
	currImgHeight = $('#'+next.id).attr('height');

	fileName = next.id;
	paperJpegsPathHttp = next.src;

	var dndIncDecProcess = 0;
	if(prevVisitedPage != undefined) {
		if(curr.id.match(/banner_ad(\d+)_[A-Za-z0-9]/) && next.id==prevVisitedPage) { dndIncDecProcess = 1; }
	}
	
	if(!dndIncDecProcess)
	{
	//added by pankaj, for 000054_other_tasks.docx - point # 10 & 11. Dt: 13/10/2010 - start
	if (fwd == true)
	{
		if (strtSlide != 1)
		{
			currPageNum = eval(strtSlide);
			strtSlide = 1;
		}
		else
		{
			currPageNum = currPageNum + 1;
		}
		prevVisitedPage = next.id;
	}
	else if (fwd == false)
	{
		currPageNum = currPageNum - 1;
		prevVisitedPage = next.id;
	}
	}
	//added by pankaj, for 000054_other_tasks.docx - point # 10 & 11. Dt: 13/10/2010 - start

	//changed from 0 to 1 by pankaj, for 000054_beta_plan.xlsx: task # 5. Dt: 07/10/2010
	//$('#prev')[currPageNum == 1 ? 'hide' : 'show']();//commented by Rajesh for issue 402
	/*Added by Rajesh for issue 402*/
	if (currPageNum == 1)
	{
		$('#prev').hide();
	}
	else
	{
		//$('#prev').show();
		$('#prev').css('display', 'block');
	}
	/*end*/
	//changed from opts.slideCount - 1 to opts.slideCount by pankaj, for 000054_beta_plan.xlsx: task # 5. Dt: 07/10/2010
	
	// Added by Pankaj, for 0000448 – Note # 0001902, 0002038. DT: 12/04/2011 - start */
	for (var i=0; i<totPgCnt; i++)
	{
		if (i == (currPageNum - 1))
		{
			$('#slide'+i).show();
		}
		else
		{
			$('#slide'+i).hide();
		}
	}
	// Added by Pankaj, for 0000448 – Note # 0001902, 0002038. DT: 12/04/2011 - end */
	
	// Added by Pankaj, for chat issue reported by Manjesh on 12/04/2011. DT: 14/04/2011 - start
	$('#selGoToPg').val(currPageNum - 1);
	// Added by Pankaj, for chat issue reported by Manjesh on 12/04/2011. DT: 14/04/2011 - end

	if (currPageNum == totPgCnt || fileName == "loader950" || fileName == "loader520" || fileName == 'defLoader')
	{
		$('#next').hide();
	}
	else
	{
		$('#next').show();
	}
	//$('#next')[currPageNum == opts.slideCount ? 'hide' : 'show']();

	//changed from currPageNum + 1 to currPageNum by pankaj, for 000054_beta_plan.xlsx: task # 5. Dt: 07/10/2010
	$('#spCurrPageNum').html(currPageNum);

	//changed from opts.slideCount - 1 to opts.slideCount by pankaj, for 000054_beta_plan.xlsx: task # 5. Dt: 07/10/2010

	if (currPageNum == totPgCnt || fileName == "loader950" || fileName == "loader520" || fileName == 'defLoader')
	{
		$('#goto1').show();
	}
	else
	{
		$('#goto1').hide();
	}

	//$('#goto1')[currPageNum != opts.slideCount ? 'hide' : 'show']();

	//Added by Pankaj, for Jquery Iviewer plugin implementation. Dt: 30/09/2010.
	$('#'+curr.id+'_iv').remove();

	if (flg == 0)
	{
		flg = 1;
		$('#idJqIv').html("<a href='#' onclick='initJqIviewer();'>Zoom This Page</a>");
	}

	//Added by Pankaj, for 000054_beta_plan.xlsx: task # 5. Dt: 08/10/2010
	/*below code added by Rajesh Reddy for 000054_other_tasks.docx – Point # 34 (IE problem) on 15-11-2010*/
	if (fileName == "loader950" || fileName == "loader520" || loginFlag == "1" || fileName == 'defLoader')/*condition modified by Rajesh Reddy for issue 54 point 42 from other_tasks.docx*/
	{
		//set php session through ajax
		setPgNumInSession();
	}
	else
	{
		//unset php session through ajax
		unSetPgNumInSession(1);
	}

	//Added by Pankaj, for dynamically adding the ajax loader message. Dt: 06/10/2010
	/*below code added by Rajesh Reddy*/
	if (fileName == "loader950" || fileName == "loader520" || fileName == 'defLoader')
	{
		//Added by Pankaj, for hidding 'Zoom This Page' & 'Use Magnifier Tool' links when loader gif is shown. Dt. 13/10/2010
		$('#idJqIv').hide();
		$('#idMg').hide();

		/* Added by Pankaj, for QA Defects - Mantis Issue 0396 - Part 01.doc - Defect # 6. DT: 24/12/2010 */
		//$('#idSvMyLib').hide();
		$('#idSvPg').hide();
		$('#idSvPgSld').hide();
		
		// Added by Pankaj, for 0000448 – Note # 0001902, 0002038. DT: 12/04/2011 - start */
		$('#idVwSlideShow').hide();
		// Added by Pankaj, for 0000448 – Note # 0001902, 0002038. DT: 12/04/2011 - end */

		//Added by Pankaj, for 000054_beta_plan.xlsx: task # 5. Dt: 07/10/2010
		$('.eReader').append("<script type='text/javascript'>timerID_1 = setTimeout('location.reload();', 15000);</script>");

		/*Added by Rajesh Reddy for issue 54 point 42 from other_tasks.docx*/
		/*$('.eReader').append("<script type='text/javascript'>setTimeout('redirect();', 10000);</script>");*/
	}
	else
	{
		//Added by Pankaj, for showing 'Zoom This Page' & 'Use Magnifier Tool' links when loader gif is shown. Dt. 13/10/2010
		$('#idJqIv').show();
		$('#idMg').show();

		/* Added by Pankaj, for QA Defects - Mantis Issue 0396 - Part 01.doc - Defect # 6. DT: 24/12/2010 */
		$('#idSvMyLib').show();
		$('#idSvPg').show();
		$('#idSvPgSld').show();
		
		// Added by Pankaj, for 0000448 – Note # 0001902, 0002038. DT: 12/04/2011 - start */
		$('#idVwSlideShow').show();
		// Added by Pankaj, for 0000448 – Note # 0001902, 0002038. DT: 12/04/2011 - end */

		if (timerID_1 != undefined)
		{
			window.clearTimeout(timerID_1);
		}

		if (timerID_2 != undefined)
		{
			window.clearTimeout(timerID_2);
		}
	}

	getTextInfo(); // Saumil: 000054_beta_plan.xlsx: task # 25. Dt: 12 Nov 10
	incrementViewCounter(); // Saumil on 2 Feb,11: for issue 0000442
	}
	else
	{
		var splitIdArr = next.id.split("_");
		displayAdId = splitIdArr[2];
		if (currPageNum == 1) { $('#prev').css('display', 'block'); } // Use when ad display on second page
		//$('#firstActionRow').css('visibility', 'hidden');
		//$('#selGoToPg').css('visibility', 'hidden');
		$('#selGoToPg').css('display', 'none');
		//$('#secondActionRow').css('visibility', 'hidden');
		$('.diff4').css('visibility', 'hidden');
		$('.diff3').css('display', 'none');
		if(displayAdId=='XXXX' && next.src=='/Images/default_magazine_ad.jpg') { $('.diff1').css('display', 'none'); }
		else {
		$('.diff1').css('display', 'block');
		}
		$('.diff2').css('display', 'block');
                if($.browser.msie){
					// For use within normal web clients 
					// var isiPad = navigator.userAgent.match(/iPad/i) != null;
					// For use within iPad developer UIWebView
					var ua = navigator.userAgent;
					var isiPad = /iPad/i.test(ua) || /iPhone OS 3_1_2/i.test(ua) || /iPhone OS 3_2_2/i.test(ua);
					if(isiPad) {
						$('#'+next.id).css('width','720');
					} else {
                $('#'+next.id).css('width','735');
					}
				if(defHeight<520) {
				$('#'+next.id).css('height', defHeight);
				} else {
		$('#'+next.id).css('height', '520');
				}
                }
		
		//var adDestUrl = 'http://www.wesrch.com/';
		//var txtDivValue = document.getElementById('textContent').innerHTML;
		//var paperId = document.comment.category_paper_master_id.value;
		//var paperType = document.comment.paper_type.value;
		//next.src = '/Images/loading_ereader.jpg';
		$.ajax({
			type: "POST",
			url: "/getEreaderBannerAdsDetails.php",
			data: "gJsPaperId=" + gJsPaperId + "&gJsPaperType=" + gJsPaperType + "&displayAdId=" + displayAdId,
			success: function(html){
				//alert(html);
				var myObject = eval('(' + html + ')');
				//alert(myObject.adFound);
				//next.onclick = window.open('http://www.google.com/');
				if(myObject.adFound==1)
				{
					if(myObject.adId==0) { $('.diff1').css('display', 'none'); }
					if(next.src != myObject.imgSrc) { next.src = myObject.imgSrc; }
					next.title = myObject.adTitle;
					next.alt = myObject.adDesc;
					adDestUrl = myObject.destUrl;
					document.getElementById('ad_id').value = myObject.adId;
				}
			}
		});
		$('#'+next.id).css('cursor', 'pointer');
		$('#'+next.id).unbind('click').click(function() { window.open(adDestUrl); return false; });


		/*$.ajax({
			type: "POST",
			url: "/getEreaderBannerAds.php",
			data: "currPageNum=" + currPageNum +
					"&paperJpegsPathHttp=" + paperJpegsPathHttp,
			success: function(html){
				//alert(html);
				if(html!='bannerAdNotFound') {
					next.src = html;
				} else {
					next.src = 'http://www.wesrch.com/Images/logoWeSRCH.jpg';
				}
			}
		});*/
	}
}

function goToPage()
{
	unSetPgNumInSession(2);
}

function initImgPwrZoom()
{
	if (flg == 0)
	{
		flg = 1;
		$('#idJqIv').html("<a href='#' onclick='initJqIviewer();'>Zoom This Page</a>");
	}

	//Added by Pankaj, for Jquery Iviewer plugin implementation. Dt: 30/09/2010. - Start
	$('#'+fileName+'_iv').remove();
	$('#'+fileName).show();
	//Added by Pankaj, for Jquery Iviewer plugin implementation. Dt: 30/09/2010. - End

	//if condition added by Pankaj, for magnifier tool issue in IE. Dt: 18/10/2010
	if ($.browser.msie)
	{

		$('#'+fileName).addpowerzoom({defaultpower: 2, powerrange: [2, 5], largeimage: paperJpegsPathHttp, magnifiersize: [300, 150], width: currImgWidth, height: currImgHeight});
	}
	else
	{
		$('#'+fileName).addpowerzoom({defaultpower: 2, powerrange: [2, 5], largeimage: paperJpegsPathHttp, magnifiersize: [300, 150]});
	}
}

//Added by Pankaj, for Jquery Iviewer plugin implementation. Dt: 29/09/2010

function initJqIviewer()
{
	//check if an element with same id was already added before by jquery iviewer
	$('#'+fileName+'_iv').remove();

	if (flg == 1)
	{
		flg = 0;

		/* Changed by Pankaj, for 000054_other_tasks.docx – Point # 19. Dt: 22/10/2010 */
		$('#idJqIv').html("<a href='#' onclick='initJqIviewer();'>Reset Zoom</a>&nbsp;&nbsp;[<a href='#' id='in'>+</a>]&nbsp;&nbsp;[<a href='#' id='out'>-</a>]");

		//hide the <img> element added through cycle plugin
		$('#'+fileName).hide();

		$('#eReader').iviewer(
		{
			src:              paperJpegsPathHttp,
			ui_disabled:      true,
			update_on_resize: false,
			zoom_min:         57,
			initCallback: function ()
			{
				var object = this;
				$("#in").click(function(){ object.zoom_by(1); });
				$("#out").click(function(){ object.zoom_by(-1);	});
			},
			onMouseMove:      function(object, coords) { },
			onStartDrag:      function(object, coords) { return true; }, //this image will not be dragged
			onDrag:           function(object, coords) { }
		});

		//set the id attribute for the newly added <img> tag through jquery iviewer
		$("img[src='"+paperJpegsPathHttp+"'][id!='"+fileName+"']").attr('id', fileName+'_iv');
	}
	else
	{
		flg = 1;
		$('#idJqIv').html("<a href='#' onclick='initJqIviewer();'>Zoom This Page</a>");

		$('#'+fileName).show();
	}
}

// Saumil: 000054_beta_plan.xlsx: task # 25. Dt: 12 Nov 10 - start Excluded: Paper/page_summary.php (implemented in the file itself), Paper/display_page.php (not require for now and not call this function for single page), getTextInfo call in this file's onAfter() function and also inside the Paper/paper_detalis.php file for single page document
function getTextInfo(){
$("#textContent").html('<div align="center"><img align="middle" src="/Images/loading.jpg" title="Loader" alt="Loader" /></div>');
$.ajax({
	type: "POST",
	url: "/getTextInfo.php",
	data: "currPageNum=" + currPageNum +
			"&paperJpegsPathHttp=" + paperJpegsPathHttp,
	success: function(html){
		$("#textContent").html(html);
	}
});
}
// Saumil: 000054_beta_plan.xlsx: task # 25. Dt: 12 Nov 10 - end

//Added by Pankaj, for setting/unsetting page num in php session. DT: 24/11/2010 - start

function setPgNumInSession()
{
	$.ajax({
		type: "POST",
		url: "/setPgNumInSession.php",
		data: "currPageNum="+currPageNum+"&fileName="+fileName
	});
}

function unSetPgNumInSession(reloadFlg)
{
	if (reloadFlg == 1)
	{
		$.ajax({url: "/unSetPgNumInSession.php"});
	}
	else
	{
		$.ajax({
			url: "/unSetPgNumInSession.php",
			success: function(data)
			{
				location.reload();
			}
		});
	}
}

//Added by Pankaj, for setting page num in php session. DT: 24/11/2010 - end

//Added by Pankaj, for issue 0000403. DT: 13/01/2011 - start

function setGoToPgNumInSession()
{
	var goToPageNum = $('#selGoToPg').val();

	$.ajax({
		type: "POST",
		url: "/setGoToPgNumInSession.php",
		data: "goToPageNum="+goToPageNum,
		success: function(data)
		{
			location.reload();
		}
	});
}

//Added by Pankaj, for issue 0000403. DT: 13/01/2011 - end

//Added by Saumil on 2 Feb,11: for issue 0000442 - START
function incrementViewCounter(totalPaperPages)
{
	if(totalPaperPages=='onepage') {
		var passPageNo = 1;
	} else {
		var passPageNo = currPageNum;
	}
	var pId = document.comment.category_paper_master_id.value;
	var pType = document.comment.paper_type.value;
	$.ajax({
		type: "POST",
		url: "/incrementViewCounter.php",
		data: "currPageNum="+passPageNo+"&pId="+pId+"&pType="+pType
	});
}
//Added by Saumil on 2 Feb,11: for issue 0000442 - END
