irise.namespace("irise"); // sets the namespace
var iOSNavBtnInstanceArr = new Array(); 

irise.iOSButton = function(){
}

irise.iOSButton.prototype.onload = function(){
	
	var iOSNavBtnFullId = this.getId();
	var iOSNavBtnId = iOSNavBtnFullId.substring(iOSNavBtnFullId.length-4);// store the shortened instance id to be used as array element key
	iOSNavBtnInstanceArr[iOSNavBtnId] = this;
	// set the corner radius values for the curvy corners plugin
	var settingsRight = {
		tl: {radius: 0},
		tr: {radius: 5},
		bl: {radius: 0},
		br: {radius: 5},
		
		antiAlias: true
	}
	var settingsLeft = {
		tl: {radius: 5},
		tr: {radius: 0},
		bl: {radius: 5},
		br: {radius: 0},
		
		antiAlias: true
	}
	// get the initial widget dimensions
	var widgetWidth = this.getProperty('width');
	var widgetHeight = this.getProperty('height');
	// get widget properties
	var iOSNavBtnLabelText = this.getProperty('iOSNavBtnLabel');
	if(iOSNavBtnLabelText == "" || iOSNavBtnLabelText == null || iOSNavBtnLabelText == "undefined")
		iOSNavBtnLabelText = "Back";
	iOSNavBtnLabelText = iOSNavBtnLabelText.replace(/\s/g, '&nbsp;');
	
	var iOSNavBtnType = this.getProperty('iOSNavBtnType');
	if(iOSNavBtnType == "" || iOSNavBtnType == null || iOSNavBtnType == "undefined")
		iOSNavBtnType = "Back";
	
	var iOSNavBtnColor = this.getProperty('iOSNavBtnColor');
	if(iOSNavBtnColor == "" || iOSNavBtnColor == null || iOSNavBtnColor == "undefined")
		iOSNavBtnColor = "#000000";
		
	var iOSNavBtnFontColor = this.getProperty('iOSNavBtnFontColor');
	if(iOSNavBtnFontColor == "" || iOSNavBtnFontColor == null || iOSNavBtnFontColor == "undefined")
		iOSNavBtnFontColor = "#FFFFFF";
		
	// --------------------------------------------- prepare the widget HTML structure and append it to the widget div ---------------------------------------- //
	if (iOSNavBtnType == "Back"){
		var iOSNavBtnCustonColorDiv = '<div class="iOSNavBtnCustomContainer"><div class="iOSNavBtnArrowLeft"></div><div class="iOSNavBtnMiddleCustom"><div class="iOSNavBtnLabelText" style="color:'+iOSNavBtnColor+'" id="'+iOSNavBtnId+'iOSNavLabelCustomDiv"></div></div><div class="iOSNavBtnRightCustom"></div></div>';
		
		var iOSNavBtnOverlayDiv = '<div class="iOSNavBtnOverlayContainer"><div class="iOSNavBtnArrowLeftOverlay"></div><div class="iOSNavBtnMiddleOverlay"><div class="iOSNavBtnLabelText" style="color:'+iOSNavBtnFontColor+'" id="'+iOSNavBtnId+'iOSNavLabelOverlayDiv"></div></div><div class="iOSNavBtnRightOverlay"></div></div>';
	}
	
	else if (iOSNavBtnType == "Next"){
		var iOSNavBtnCustonColorDiv = '<div class="iOSNavBtnCustomContainer"><div class="iOSNavBtnLeftCustom"></div><div class="iOSNavBtnMiddleCustom"><div class="iOSNavBtnLabelText" style="color:'+iOSNavBtnColor+'" id="'+iOSNavBtnId+'iOSNavLabelCustomDiv"></div></div><div class="iOSNavBtnArrowRight"></div></div>';
		
		if($.browser.mozilla || $.browser.opera)
			var iOSNavBtnOverlayDiv = '<div class="iOSNavBtnOverlayContainer"><div class="iOSNavBtnLeftOverlay"></div><div class="iOSNavBtnMiddleOverlay"><div class="iOSNavBtnLabelText" style="color:'+iOSNavBtnFontColor+'" id="'+iOSNavBtnId+'iOSNavLabelOverlayDiv"></div></div><div class="iOSNavBtnArrowRightOverlayMOC"></div></div>';

		else if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1) // Chrome	
			var iOSNavBtnOverlayDiv = '<div class="iOSNavBtnOverlayContainer"><div class="iOSNavBtnLeftOverlay"></div><div class="iOSNavBtnMiddleOverlay"><div class="iOSNavBtnLabelText" style="color:'+iOSNavBtnFontColor+'" id="'+iOSNavBtnId+'iOSNavLabelOverlayDiv"></div></div><div class="iOSNavBtnArrowRightOverlayMOC"></div></div>';
			
		else
			var iOSNavBtnOverlayDiv = '<div class="iOSNavBtnOverlayContainer"><div class="iOSNavBtnLeftOverlay"></div><div class="iOSNavBtnMiddleOverlay"><div class="iOSNavBtnLabelText" style="color:'+iOSNavBtnFontColor+'" id="'+iOSNavBtnId+'iOSNavLabelOverlayDiv"></div></div><div class="iOSNavBtnArrowRightOverlay"></div></div>';
	}
	
	else if (iOSNavBtnType == "Gradient Button"){
		var iOSNavBtnCustonColorDiv = '<div class="iOSNavBtnCustomContainer"><div class="iOSNavBtnLeftCustom"></div><div class="iOSNavBtnMiddleCustom"><div class="iOSNavBtnLabelText" style="color:'+iOSNavBtnColor+'" id="'+iOSNavBtnId+'iOSNavLabelCustomDiv"></div></div><div class="iOSNavBtnRightCustom"></div></div>';
		
		var iOSNavBtnOverlayDiv = '<div class="iOSNavBtnOverlayContainer"><div class="iOSNavBtnLeftOverlay"></div><div class="iOSNavBtnMiddleOverlay"><div class="iOSNavBtnLabelText" style="color:'+iOSNavBtnFontColor+'" id="'+iOSNavBtnId+'iOSNavLabelOverlayDiv"></div></div><div class="iOSNavBtnRightOverlay"></div></div>';
	}
	
	else if (iOSNavBtnType == "Button"){
		var iOSNavBtnCustonColorDiv = '<div class="iOSNavBtnCustomContainer"><div class="iOSNavBtnLeftCustom"></div><div class="iOSNavBtnMiddleCustom"><div class="iOSNavBtnLabelText" style="color:'+iOSNavBtnFontColor+'" id="'+iOSNavBtnId+'iOSNavLabelCustomDiv"></div></div><div class="iOSNavBtnRightCustom"></div></div>';

		var iOSNavBtnOverlayDiv='';
	}
	
	var toAppendDiv ='<div class="iOSNavBtnOuterContainer" id="'+iOSNavBtnId+'iOSNavBtnOuterContainer">'+iOSNavBtnCustonColorDiv+iOSNavBtnOverlayDiv+'</div>';
	var dispNoneDivs = new Array();
	// ---------------------------------- make the parents visible or the hidden views wont get rendered correctly ---------------------------------------------- //
	var divParents = $("#"+iOSNavBtnFullId).parents("*"); // catch all kinds of parents(divs, forms, etc)
	if($("#"+iOSNavBtnFullId).css("display")=="none")
	{
		$("#"+iOSNavBtnFullId).css("display","block");
		dispNoneDivs.push($("#"+iOSNavBtnFullId));
	}
	for(var p =0; p < divParents.length;p++)
	{
		if($(divParents[p]).css("display")=="none")
		{
			$(divParents[p]).css("display","block");
			dispNoneDivs.push($(divParents[p]));
		}
	}
	this.getWidgetDiv().append(toAppendDiv); // append the widget structure to the widget div
	
	// ------------------------------------------ customize the widget HTML based on the properties set in the studio ------------------------------------------------ //
	if (iOSNavBtnType == "Back"){
		$('#'+iOSNavBtnFullId+' .iOSNavBtnArrowLeft').css('border-right-color', iOSNavBtnColor);
		$('#'+iOSNavBtnFullId+' .iOSNavBtnMiddleCustom').css('background-color', iOSNavBtnColor);
		$('#'+iOSNavBtnFullId+' .iOSNavBtnRightCustom').css('background-color', iOSNavBtnColor);
		curvyCorners(settingsRight, '#'+iOSNavBtnFullId+' .iOSNavBtnRightCustom');

		$('#'+iOSNavBtnFullId+' #'+iOSNavBtnId+'iOSNavLabelCustomDiv').html(iOSNavBtnLabelText);
		$('#'+iOSNavBtnFullId+' #'+iOSNavBtnId+'iOSNavLabelOverlayDiv').html(iOSNavBtnLabelText);
	}
	else if (iOSNavBtnType == "Next"){
		$('#'+iOSNavBtnFullId+' .iOSNavBtnArrowRight').css('border-left-color', iOSNavBtnColor);
		$('#'+iOSNavBtnFullId+' .iOSNavBtnMiddleCustom').css('background-color', iOSNavBtnColor);
		$('#'+iOSNavBtnFullId+' .iOSNavBtnLeftCustom').css('background-color', iOSNavBtnColor);
		curvyCorners(settingsLeft, '#'+iOSNavBtnFullId+' .iOSNavBtnLeftCustom');
			
		$('#'+iOSNavBtnFullId+' #'+iOSNavBtnId+'iOSNavLabelCustomDiv').html(iOSNavBtnLabelText);
		$('#'+iOSNavBtnFullId+' #'+iOSNavBtnId+'iOSNavLabelOverlayDiv').html(iOSNavBtnLabelText);
	}
	else if (iOSNavBtnType == "Gradient Button"){
		$('#'+iOSNavBtnFullId+' .iOSNavBtnLeftCustom').css('background-color', iOSNavBtnColor);
		$('#'+iOSNavBtnFullId+' .iOSNavBtnMiddleCustom').css('background-color', iOSNavBtnColor);
		$('#'+iOSNavBtnFullId+' .iOSNavBtnRightCustom').css('background-color', iOSNavBtnColor);
		curvyCorners(settingsLeft, '#'+iOSNavBtnFullId+' .iOSNavBtnLeftCustom');
		curvyCorners(settingsRight, '#'+iOSNavBtnFullId+' .iOSNavBtnRightCustom');
				
		$('#'+iOSNavBtnFullId+' #'+iOSNavBtnId+'iOSNavLabelCustomDiv').html(iOSNavBtnLabelText);
		$('#'+iOSNavBtnFullId+' #'+iOSNavBtnId+'iOSNavLabelOverlayDiv').html(iOSNavBtnLabelText);
	}
	else if (iOSNavBtnType == "Button"){
		$('#'+iOSNavBtnFullId+' .iOSNavBtnLeftCustom').css('background-color', iOSNavBtnColor);
		$('#'+iOSNavBtnFullId+' .iOSNavBtnMiddleCustom').css('background-color', iOSNavBtnColor);
		$('#'+iOSNavBtnFullId+' .iOSNavBtnRightCustom').css('background-color', iOSNavBtnColor);
		$('#'+iOSNavBtnFullId+' .iOSNavBtnLeftCustom').css('height', 30+'px');
		$('#'+iOSNavBtnFullId+' .iOSNavBtnRightCustom').css('height', 30+'px');
		
		curvyCorners(settingsLeft, '#'+iOSNavBtnFullId+' .iOSNavBtnLeftCustom');
		curvyCorners(settingsRight, '#'+iOSNavBtnFullId+' .iOSNavBtnRightCustom');				
		$('#'+iOSNavBtnFullId+' #'+iOSNavBtnId+'iOSNavLabelCustomDiv').html(iOSNavBtnLabelText);
	}
	
	var iOSNavBarMiddleWidth = $('#'+iOSNavBtnFullId+' .iOSNavBtnLabelText').css('width');
	// correct the offsets appearing for the widget Div
	this.getWidgetDiv().css('lineHeight', 0);
	if($.browser.msie){// for IE
		this.getWidgetDiv().css('marginTop', 0);
		if ($.browser.version < 8)
			$('#'+iOSNavBtnFullId+' .iOSNavBtnLabelText').css('margin-top', '16px');
		else{
			$('#'+iOSNavBtnFullId+' .iOSNavBtnLabelText').css('margin-top', '15px');
			this.getWidgetDiv().css('marginLeft', 1);
		}	
	}
	else if($.browser.opera){ // for Opera
		this.getWidgetDiv().css('marginTop', 0);
		$('#'+iOSNavBtnFullId+' .iOSNavBtnLabelText').css('margin-top', '21px');
	}
	else if($.browser.safari){// for Safari
		if((parseInt($.browser.version))>=534)
			this.getWidgetDiv().css('marginTop', 0);
		else{
			this.getWidgetDiv().css('marginTop', -5);
		}
	}

	if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1) // Chrome
		this.getWidgetDiv().css('marginTop', 0);
	
	if (iOSNavBtnType == "Back" || iOSNavBtnType == "Next"){
		if($.browser.msie)
			this.getWidgetDiv().width(parseInt(iOSNavBarMiddleWidth)+21);
		else
			this.getWidgetDiv().width(parseInt(iOSNavBarMiddleWidth)+20);
	}
	else if (iOSNavBtnType == "Gradient Button" || iOSNavBtnType == "Button"){
		if($.browser.msie)
			this.getWidgetDiv().width(parseInt(iOSNavBarMiddleWidth)+15);
		else
			this.getWidgetDiv().width(parseInt(iOSNavBarMiddleWidth)+14);
	}
	else{
	}
	if(navigator.appVersion.indexOf("Mac" != -1))//add 1 px for mac OS
	{
		if($.browser.mozilla)
			this.getWidgetDiv().width(this.getWidgetDiv().width()+2);
		else
			this.getWidgetDiv().width(this.getWidgetDiv().width()+1);
	}
	$('#'+iOSNavBtnFullId+' .iOSNavBtnOuterContainer').bind('mouseup', function(e) {
		iOSNavBtnInstanceArr[iOSNavBtnId].sendEvent('OnClick');		
	});
	if(dispNoneDivs)//return the parents to original state
	{
		for(var d = 0; d < dispNoneDivs.length; d++)
		{
			dispNoneDivs[d].css("display","none");
		}
	}
}//onload ends
