$(document).ready( function(){
	//	Object with global variables
	GlobalVariables = new Object();
	//script on server that will send data
	GlobalVariables.url = '/ajaxs/updateproduct';

	// text that be printed
	//Status from Product Status table
	GlobalVariables.auctionstatus = [];
	GlobalVariables.auctionstatus[3] = 'item pending...';
	GlobalVariables.auctionstatus[4] = 'Closed';
	GlobalVariables.auctionstatus[5] = 'Sold Out';
	
	GlobalVariables.wrongdata = 'Wrong Data! Please Verify!';

	// flag inficate when all data is loaded
	GlobalVariables.process_initialized = false;
	// boolean array for highlit new price
	GlobalVariables.isPriceChanged = false;
	// boolean array for highlit last time
	GlobalVariables.isTimeCritical = false;
	// critical time for higlite
	GlobalVariables.CriticalTime = '00:10';
    // when auction is closed
	GlobalVariables.closed = false;
	// when auction is opened
	GlobalVariables.opened = true;

	GlobalVariables.auctionid = -1;

	// get id for auction
	InitId();

	// array for every active auction
	GlobalVariables.all_data = "";
	// flag for data update
	GlobalVariables.streaming = false;
	// flag for updating offered bid
	GlobalVariables.offeredbidtyping = false;
	// timeout for data update
	GlobalVariables.timeout = 2000;
	// global counter of request
	GlobalVariables.counter = 1;
	// last requested query
	GlobalVariables.lastRequest = 1;

	// start streaming
	SetStreaming();

	// refresh button
	$('#streamstatus').click(function(){
		SetStreaming();
	});

	// stop updating text fields(for example bid field)
	$("input:text").click(function(){
		GlobalVariables.offeredbidtyping = true;
	});

	// start updating text field when focus was lost
	$("input:text").blur(function(){
		GlobalVariables.offeredbidtyping = false;
	});


	// tabs for product properties
	GlobalVariables.tabsnumber = 4;

	$('#element-1').click(function(){
		ChangeBackgroundToActive(1);
		ChangeActiveTab(1);
	});

	$('#element-2').click(function(){
		ChangeBackgroundToActive(2);
		ChangeActiveTab(2);
	});

	$('#element-3').click(function(){
		ChangeBackgroundToActive(3);
		ChangeActiveTab(3);
	});

	$('#element-4').click(function(){
		ChangeBackgroundToActive(4);
		ChangeActiveTab(4);
	});

	$('.img_abl > img').click(function(){
		var url = $(this).attr("src");
		url = url.replace("/50/","/250/");
		$('#middlepreview > img').attr('src',url);

		});

	$('#bigimageurl').click(function(){
		ShowBigImage();
	});

	$('#bigimage').click(function(){
		ShowBigImage();
	});


	$('#closebigimage').click(function(){
		$('.large_img_pos').css('display','none');
	});

	/* ============================================= */
	if($('#autobidenable').attr('checked'))
		GlobalVariables.autobid = true;
	else
		GlobalVariables.autobid = false;
	EnableDisableAutobid();
	// when are making Ctrl + R check box !!!!
	$('#autobidenable').click(function(){
		EnableDisableAutobid();
	});

	$('#watchlistaction').click(function(){
		AddRemoveWatchlist();
	});
	/* ===============================================*/
	// check if in url present selected tab
	 MakeActiveTab();
	/*================================================*/

});

function MakeActiveTab(){
	var url = window.location.href;
	var param = url.split('#');
	if(typeof(param[1]) != "undefined"){
		if(param[1] == "autobid"){
			// make active autobid tab
			ChangeBackgroundToActive(4);
			ChangeActiveTab(4);
		}
	}
}

function ShowBigImage(){
		var url = $('#middlepreview > img').attr("src");
		url = url.replace('/250/','/500/');
		$('.large_img_pos').css('display','block');
		$('.large_img_pos img').attr('src',url);

}

function EnableDisableAutobid(){
		if(GlobalVariables.autobid){
			$('#autobidtext').empty().append('autobid is enabled').css('color','#00ADEF');
			$('#AutoBidAutoBidIncrement').attr('disabled','');
			$('#AutoBidMaximumAmount').attr('disabled','');
			$('#autobidenable').val('1');
		}else{
			$('#autobidtext').empty().append('autobid is disabled').css('color','');
			$('#autobidenable').val('0');
			$('#AutoBidAutoBidIncrement').attr('disabled','disabled');
			$('#AutoBidMaximumAmount').attr('disabled','disabled');
		}
		GlobalVariables.autobid = !GlobalVariables.autobid;
}

function SetStreaming(){
	$('#streamstatus').empty();
	GlobalVariables.streaming = !GlobalVariables.streaming;
	if(GlobalVariables.streaming){
		$('#streamstatus').append("ON");
		GlobalVariables.StreamingInterval = setInterval(UpdateData,GlobalVariables.timeout);

	}else{
		$('#streamstatus').append("OFF");
		clearInterval(GlobalVariables.StreamingInterval);
	}
}

function UpdateData(){
	InitData();
	if(!GlobalVariables.process_initialized)
		return;
	// temp array for display previous query
	var temp_opened_auctions = GlobalVariables.opened_auctions_on_page;
	// empty opened arrays, new query contain other opened ouctions
	//if(GlobalVariables.opened_auctions_on_page)
	//	GlobalVariables.opened_auctions_on_page = [];
	
	var auction = $('#highlite_' + GlobalVariables.auctionid);
	var auction_data = GlobalVariables.all_data.split("||");

	// check if data exist for this auction
	if( parseInt(auction_data[6]) == 2 ){
		// 1 - price, 2 - user name, 3 - time, 4 - offered bid , 5 - remaining time, 6 status
		InitHighliteBid(auction_data[1]);
		$('#price').empty().append(auction_data[1]);
		$('#user').empty().append(auction_data[2]);
		$('#time').empty().append(auction_data[3]);
		if(!GlobalVariables.offeredbidtyping)
			$('#bid').val(auction_data[4]);
		$('#closedtime').empty().append(auction_data[5]);
		InitHighliteTime();
		DoActiveAuctionFormElements();
	}else{ // auction is active
		//GlobalVariables.closed = true;
		$('#time').empty().append(GlobalVariables.auctionstatus[auction_data[6]]);
		$('.currency').css("color","rgb(121, 121, 121)");
		$('#price').css("color","rgb(121, 121, 121)");
		DoDisabledAuctionFormElements();
	}

	// change status for closed auctions
	Highlite();
	setTimeout(CleanHighlite,800);
}

function CleanHighlite(){
		if(GlobalVariables.isPriceChanged){
			$('#bg').css('background-image',"url('/img/auc_brand_bg.gif')");
			$('#left').css('background-image',"url('/img/auc_brand_left.gif')");
			$('#right').css('background-image',"url('/img/auc_brand_right.gif')");
			GlobalVariables.isPriceChanged = false;
		}
		// checking if time is critical
		if(GlobalVariables.isTimeCritical){
			$('#timecolor').css('color','#827a00');
			GlobalVariables.isTimeCritical = false;
		}
}

function Highlite(){
		if(GlobalVariables.isPriceChanged){
			$('#bg').css('background-image',"url('/img/auc_brand_bg_chng.gif')");
			$('#left').css('background-image',"url('/img/auc_brand_left_chng.gif')");
			$('#right').css('background-image',"url('/img/auc_brand_right_chng.gif')");
		// checking if time is critical
		} else {
			if(GlobalVariables.isTimeCritical){
				$('#timecolor').css('color','#9D0A0E');
			}
		}
}

function InitHighliteBid(price){
	var oldprice = parseInt( $('#price').text() );
	if(oldprice != parseInt(price)){
		GlobalVariables.isPriceChanged = true;
	} else {
		GlobalVariables.isPriceChanged = false;
	}
}

function InitHighliteTime(){
		// init auctions with critical time ( < 10 sec to closed state)
		var time = $('#time').text();
		//var time = str.split(':');
		if(time <= GlobalVariables.CriticalTime){
			GlobalVariables.isTimeCritical = true;
		} else {
			GlobalVariables.isTimeCritical = false;
		}
}

function InitData(){
	//check if auctions is opened
	if(GlobalVariables.closed )
		return;
	// request ID
	GlobalVariables.counter++;

	$.post(GlobalVariables.url,{ counter : GlobalVariables.counter, auctionid: GlobalVariables.auctionid },function(str){
				var tempData = str.split("$$");
				// Variable GlobalVariables.lastRequest contain ID of request which was
				// changed data, if request with id 4 will came after request with id 5 then
				// then request with id 4 will be ignored.
				if( parseInt(tempData[0]) > GlobalVariables.lastRequest ){
					// set last requested ID
					GlobalVariables.lastRequest = parseInt(tempData[0]);
					AuctionData = tempData[1].split('%%');
					GlobalVariables.all_data = AuctionData[0];
					// data present
					GlobalVariables.process_initialized = true;
				}
	});
}
function InitId(){
	var tmp = $('.clauction').attr("id").split("_");
	GlobalVariables.auctionid = parseInt(tmp[1]);
}

// check if bid is number
function CheckBid(bid){
	if(!isNaN(bid)){
		//var objRegExp = /^\d*$/;
		//alert( bid + ' : ' + objRegExp.test(bid));
		if(bid >= 1 )
			return true;
		else
			return false;
	}else
		return false;
}

// when user make a bid doing disabled input and buttton elements of form
// change images
function DoDisabledAuctionFormElements(){
		$('#bid').attr('disabled','disabled');
		$('#bid').removeClass();
		$('#bid').addClass('prod_bid_input_ser');
		$('#bid_button').attr('disabled','disabled');
		$('#bid_button').attr('src','/img/bid_ser.gif');
}

// activate form elements after new data arrived from server
function DoActiveAuctionFormElements(){
		$('#bid').attr('disabled','');
		$('#bid').removeClass();
		$('#bid').addClass('prod_bid_input');
		$('#bid_button').attr('disabled','');
		$('#bid_button').attr('src','/img/bid.gif');

}

function DoActiveAutobidFormElements(){
		$('#AutoBidAutoBidIncrement').attr('disabled','');
		$('#AutoBidMaximumAmount').attr('disabled','');
		$('#autobidenable').attr('disabled','');
		$('#autobidbutton').attr('disabled','');
		$('#autobidbutton').attr('src','/img/submit.gif');

}

function DoDisabledAutobidFormElements(){
		$('#AutoBidAutoBidIncrement').attr('disabled','disabled');
		$('#AutoBidMaximumAmount').attr('disabled','disabled');
		$('#autobidenable').attr('disabled','disabled');
		$('#autobidbutton').attr('disabled','disabled');
		$('#autobidbutton').attr('src','/img/submit_off.gif');

}


function SubmitBid(){
		var val = parseInt($('#bid').val());
		var id = parseInt($('#auctionid').val());
		if(CheckBid(val)){
			DoDisabledAuctionFormElements();
			$.post("/users/updatebid/",{ bid: val, auctionid : id}, function(result){
				if(result.indexOf('Register') ==  0){
					alert('You must login first!');
					return false;
				}
			});

		}else{
			alert(GlobalVariables.wrongdata);
			return false;
		}
		return false;
}

function SubmitAutoBid(){
	var checked = $('#autobidenable').val();
	var max = parseInt($('#AutoBidMaximumAmount').val());
	var inc = parseInt($('#AutoBidAutoBidIncrement').val());
	var enabledval = parseInt($('#autobidenable').val());
	if(CheckBid(max) && CheckBid(inc)){
		//make elemnt forms disabled
		DoDisabledAutobidFormElements();
		$.post('/users/insertautobid/',{ enabled : enabledval, maxamount : max , increment : inc, auctionid: GlobalVariables.auctionid },function(str){
			// unlock button
			DoActiveAutobidFormElements();
			result = str.split('%%');
			alert(result[0]);
		});
	}else{
		alert(GlobalVariables.wrongdata);
	}
}

function AddRemoveWatchlist(){
	var action = $('#watchlistaction').attr('src');
	var auc_id = parseInt($('#auctionid').val());
	if(action == '/img/watchlist_delete.gif'){
		$.post('/users/deletefromwatchlist/',{auctionid:auc_id},function(result){
			result = result.split('%%');
			result = result[0];

			if(parseInt(result) == 2){
				alert('Auction has been removed from your Watchlist!');
				$('#watchlistaction').attr('src','/img/watchlist_add.gif');
			}else{
				if(parseInt(result) == 0){
					alert('You must login first!');
				}else{
					alert('Wrong Data');
				}
			}
		});
	}else{ // add
		$.post('/users/addtowatchlist/',{auctionid:auc_id},function(result){
			result = result.split('%%');
			result = result[0];
			if(parseInt(result) == 1){
				alert('Auction has been added into your Watchlist!');
				$('#watchlistaction').attr('src','/img/watchlist_delete.gif');
			}else{
				if(result.length == 0){
					alert('You must login first!');
				}else{
					alert('Wrong Data');
				}
			}
		});
	}
}
