function JSCommon(config) {
    this._config = config;
    this._loginParams = null;
    this._loginCallBack = null;
    this._translation = config._translation;
    this.initEvents();
}
JSCommon.prototype = {
    initEvents: function() {
	var _context = this;
	/*$.holdReady(true);
	$.getJSON('/translation', function(jData){
	    if (jData.success) {
		_context._config = jData._webConfig;
		_context._translation = jData._webConfig._translation;
		$.holdReady(false);
	    }
	});*/
        $(document).ready(function(){
            _context.languageDropDown();
			_context.setAuth();
			$('a[rel]', '.main-tabs').click(function(){
				$('.active', '.main-tabs').removeClass('active');
				$(this).addClass('active');
				}).filter('a[rel="' + _context._config._SELECTED_TAB + '"]')
				.addClass('active');
			$('.login-register').click(function(){
				_context.showLoginWindow(null);
				return false;
			});
			_context.setTopMenuHover();
			//_context.setSessionExpire(30);
        });
		
    },
    setSessionExpire:function(timeout){
		var _context = this;
		timeout = timeout*1000;
		setTimeout(function() {
			$.ajax({
				url:'/auth/checkloginsession',
				data:{
					checksession:'true'
				},
				type:'POST',
				datatType:'json',
				success:function(jData){
					if (jData.success) {
						$('#resume-section').attr('style', 'display:block');
						if(jData.redirectUrl== 'reload'){
							//	window.location.reload();
							$('#resume-section').attr('style', 'display:none');
							$('#resume-login').attr('style', 'display:block');
							
						}
						_context.showSessionExpireCounter(jData.NEXT_CALL);
						//_context.setSessionExpire(jData.NEXT_CALL);
					}else{
						_context.setSessionExpire(jData.NEXT_CALL);
					}
				}
			});			
		}, timeout);
	},
	showSessionExpireCounter:function(count){
		var _context = this;
		countdown = setInterval(function(){
		$("#session_counter").html(count);
		if (count == 0) {
			_context.setSessionExpire(1);
			clearInterval(countdown);
		}
		count--;
	  }, 1000);
	},

	
    resumeSession:function(){
		var _context = this;
		$.ajax({
			url:'/auth/resume',
			data:{
				resume:'true'
			},
			type:'POST',
			datatType:'json',
			success:function(jData){
				if (jData.success) {
					$('#resume-section').attr('style', 'display:none');
				}
			}
		});			
	},		

	closeResumeLogin:function(){
		var _context = this;	
		$('#resume-login').attr('style', 'display:none');
	},


    setTopMenuHover:function(){
	var _context = this;
	
	$('.topnav a', '#header').hover(function(){	    
	    //var scope = $(this).parent();
	    var tab = $(this);
	    var tabLi = tab.parent();
	    var scope = tab.parent().parent().parent();
	    $('.popupMenu', scope).remove();
	    $('.dd-arrow', '#header .subnav').remove();
	    $('.active_hover', '#header .subnav').removeClass('active_hover');
	    
	    if (!$(this).parent().hasClass('online-topnav')) {
		return;
	    }
	    tab.addClass('active_hover');
	    /*if ($('.popupMenu', scope).length > 0) {
		return;
	    }*/
	    var popMenu = $(document.createElement('div'))
		.addClass('popupMenu')
		.css({
		    position:'relative',
		    'z-index':100
		})
		.appendTo(scope);
	    var topCrn = $(document.createElement('div'))
		.addClass('drop_down_top_crn')
		.appendTo(popMenu);
	    
	    var tabWrapper = $(document.createElement('div'))
		.addClass('dd-arrow')
		.css({
		    position:'relative',
		    'z-index':101
		})
		.appendTo(tabLi);
	    var topArrow = $(document.createElement('div'))
		.addClass('drop_down_top_arrow')
		.appendTo(tabWrapper);
	    /*if ($('li:last', scope.parent()).is(scope)) {
		topCrn.css({
		    left:'auto',
		    right:'-8px'
		});
		topArrow.css({
		    left:'auto',
		    right:'56px'
		});
	    }*/
	    //<div class="drop_down_top_arrow"></div>
	    var bottomCrn = $(document.createElement('div'))
		.addClass('drop_down_bt_crn')
		.appendTo(topCrn);
	    var midCrn = $(document.createElement('div'))
		.addClass('drop_down_mid_crn')
		.appendTo(bottomCrn);
	    var hScroll = $(document.createElement('div'))
		.addClass('horizontal_scroll')
		.appendTo(midCrn);
	    var navPopData = tab.data('navPopData');
	    var arrangePopup = function(){
		hScroll.html('');
		if (navPopData.categories.length > 0) {
		    var nav_1 = $(document.createElement('div'))
			.addClass('nav_1')
			.appendTo(hScroll);
		    var nav_1_ul = $(document.createElement('ul'))
			.appendTo(nav_1);
		    var nav_1_li = $(document.createElement('li'))
			    .appendTo(nav_1_ul);
			$(document.createElement('a'))
			    .prop({
				href:'/catalog/product/view/'+navPopData.CategoryParent
			    })
			    .append(_context.getTranslation('NG_ALL'))
			    .appendTo(nav_1_li);
		    $.each(navPopData.categories, function(i, item){			
			var nav_1_ul_li = $(document.createElement('li'))
			    .appendTo(nav_1_ul);
			$(document.createElement('a'))
			    .prop({
				href:'/catalog/product/view/' + item.productPage
			    })
			    .append(item.labelText)
			    .appendTo(nav_1_ul_li);
		    });
		}
		if (navPopData.theme.length > 0) {
		    if (navPopData.categories.length > 0) {
			nav_1.addClass('border');
		    }
		    var nav_2 = $(document.createElement('div'))
			.addClass('nav_1')
			.appendTo(hScroll);
		    var nav_2_ul = $(document.createElement('ul'))
			.appendTo(nav_2);
		    var nav_2_li = $(document.createElement('li'))
			    .appendTo(nav_2_ul);
			$(document.createElement('a'))
			    .prop({
				href:'/catalog/product/view/'+navPopData.CategoryParent+'/'+navPopData.CategoryParent
			    })
			    .append(_context.getTranslation('NG_ALL'))
			    .appendTo(nav_2_li);
		    /*$(document.createElement('li'))
			.addClass('main')
			.append('Themes:')
			.appendTo(nav_2_ul);*/
		    $.each(navPopData.theme, function(i, item){
			var nav_2_ul_li = $(document.createElement('li'))
			    .appendTo(nav_2_ul);
			$(document.createElement('a'))
			    .prop({
				href:'/catalog/product/view/' + navPopData.CategoryParent + '/' + item.id
			    })
			    .append(item.themeName)
			    .appendTo(nav_2_ul_li);
		    });
		}
	    };
	    if (navPopData == undefined) {
		$(new Image())
		    .prop({
			src:'/images/ajax-loader.gif'
		    })
		    .appendTo(hScroll);
		$.ajax({
		    url:'/catalog/product/loadpopup',
		    data:{
			catalogCode:$(this).prop('rel').replace('CATALOG_', '')
		    },
		    type:'POST',
		    datatType:'json',
		    success:function(jData){
			if (jData.success) {
			    navPopData = jData.data;
			    tab.data('navPopData', navPopData);
			    arrangePopup();
			}
		    }
		});
	    }
	    else {
		arrangePopup();
	    }
	}, function(){
	});
	$('.subnav', '#header').hover(function(){
	}, function(){
	    var scope = $(this);
	    $('.popupMenu', scope).remove();
	    $('.dd-arrow', scope).remove();
	    $('.active_hover', scope).removeClass('active_hover');
	});
    },
    shareAlbum:function(_item){
        var _context = this;
	$.ajax({
	    url:'/account/shareAlbum',
	    data:{
		albumid:_item.albumCode,
		albumname:_item.albumName,
		albumtype:_item.productCategory,
		dataFlag:_item.dataFlag
	    },
            type:'POST',
            dataType:'json',
            success:function(jData, status) {
                if (jData.success) {
		    _context.setShareAlbumBox(jData.albumid, jData.tpl, jData.productname);
		    $('#user_email_list').html(jData.emailList);
                }
                else {
                    alert(jData.cause);
                }
            }
        });
    },
    
    deleteProject:function(Myproject, _item){
	
        var _context = this;
	if(confirm(_context.getTranslation('NG_DELETE_CONFIRM_PROJECT'))) {
	    $.ajax({
		url:'/account/deleteProject',
		data:{
		    ID:_item.ID,
		    dataFlag:_item.dataFlag
		},
		type:'POST',
		dataType:'json',
		success:function(jData, status) {
		    if (jData.success) {
			if(Myproject._viewType=='grid'){
			Myproject.loadGrid(parseInt($(".page-selected").text()) > 0 ? (parseInt($(".page-selected").text()) - 1) : 0);    
			}else{
			Myproject.loadView(parseInt($(".page-selected").text()) > 0 ? (parseInt($(".page-selected").text()) - 1) : 0);
			}
			$cartItemCount = parseInt($("#welcomeBox li").last().find("a:nth-child(1)").text()) - 1;
			$("#welcomeBox li").last().find("a:nth-child(1)").text($cartItemCount);
		    }
		}
	    });
	}
    },
    
    setShareAlbumBox:function(albumid, tpl, productname){
        var _context = this;
	var popup = $(document.createElement('div'))
	    .addClass('popup')
	    .html(tpl);			
	var _dialog = $(popup).dialog({
	    width:800,
	    title:_context.getTranslation('NG_SHARE_MY_PROJECT') + ' : ' + productname,
	    modal:true,
	    resizable:false,
	    close:function(event, ui) {
		$(this).remove();
	    }
	});
	$("#mcs_container").mCustomScrollbar("vertical",400,"easeOutCirc",1.05,"auto","yes","yes",10); 
	$('form').jqTransform({imgPath:'jqtransformplugin/images/'});
    },
    getTranslation:function(k){
	var _context = this;
	if (_context._translation[k] == undefined) {
	    return '';
	}
	return _context._translation[k];
    },
    languageDropDown:function(){
        var _context = this;
        $('.dropdown dt a').click(function() {
            var dropDown = $(this).parent().parent();
            $('dd ul', dropDown).toggle();
            return false;
        });
        $('.dropdown dd ul li a').click(function(e) {
	    e.preventDefault();
	    var langCode = $(this).prop('hash').substr(1);
	    $.ajax({
		url:'/language',
		data:{
		    langCode:langCode
		},
		type:'POST',
		dataType:'json',
		success:function(jData){
		    if (jData.success) {
			window.location.reload();
		    }
		}
	    });
        });
    },
    setToolBar:function(){
	var _context = this;
	$('.welcome-toolbar').remove();
	var liWelcome = $(document.createElement('li'))
	    .append(_context.getTranslation('NG_WELCOME'), ' ');
	
	var liCart = $(document.createElement('li'))
	    .append(_context.getTranslation('NG_YOU_HAVE'), ' ');
	$(document.createElement('a'))
	    .attr({
		href:'/account/myproject'
	    })
	    .append(_context._config.USER.PROJECT_COUNT)
	    .appendTo(liCart);
	liCart.append(' ', _context.getTranslation('NG_VOUCHERS_AVAILABLE'), ' | ');
	$(document.createElement('a'))
	    .attr({
		href:'/customer/cart'
	    })
	    .append(_context._config.CART.ITEM_COUNT)
	    .appendTo(liCart);
	liCart.append(' ', _context.getTranslation('NG_ITEMS_IN_YOUR_CART'), ' | ');
	$(document.createElement('a'))
	    .attr({
		href:'/customer/cart'
	    })
	    .append(_context.getTranslation('NG_CART'))
	    .appendTo(liCart);
	    
	
	    
	if (_context._config.__AUTH.IS_LOGGED_IN) {
	    $(document.createElement('span'))
		.html(_context._config.__AUTH.USERINFO.FirstName)
		.appendTo(liWelcome);
	}
	else {
	    $(document.createElement('span'))
		.html(_context.getTranslation('NG_USER'))
		.appendTo(liWelcome);
	    
	}
	if (_context._config.__AUTH.IS_LOGGED_IN) {
	liWelcome.append(' ', '', ' | ');
	$(document.createElement('a'))
	    .attr({
		href:'/auth/logout'
	    })
	    .append(_context.getTranslation('NG_LOGOUT'))
	    .appendTo(liWelcome);
	}
	else {
	liWelcome.append(' ', '', ' | ');
	$(document.createElement('a'))
	    .attr({
		href:'JavaScript:void(0);'
	    })
	    .append(_context.getTranslation('NG_LOGIN'))
	    .click(function(){
		    _context.showLoginWindow(null);
		})
	    .appendTo(liWelcome);	    
	}
	liWelcome.add(liCart).addClass('welcome-toolbar');
	$('#welcomeBox')
	    .prepend(liWelcome, liCart);
    },
    joinUsMenu:function(){
	var _context = this;
	var h3Auth = $(document.createElement('h3'))
	    .addClass('myaccount-joinus');
	var ulAuth = $(document.createElement('ul'))
	    .addClass('quick-link')
	    .addClass('myaccount-joinus');
	h3Auth
	    .addClass('joinus')
	    .html(_context.getTranslation('NG_JOIN_US'));
	var registerLink = $(document.createElement('a'))
	    .attr({
		href:'JavaScript:void(0);'
	    })
	    .html(_context.getTranslation('NG_REGISTER_HERE'))
	    .click(function(){
		if (!_context._config.__AUTH.IS_LOGGED_IN) {
		    _context.showLoginWindow(null);
		}
	    });
	$(document.createElement('li'))
	    .append(registerLink)
	    .appendTo(ulAuth);
	
	return {
	    h3Auth:h3Auth,
	    ulAuth:ulAuth
	};
    },
    myAccountMenu:function(){
	var _context = this;
	var h3Auth = $(document.createElement('h3'))
	    .addClass('myaccount-joinus');
	var ulAuth = $(document.createElement('ul'))
	    .addClass('quick-link')
	    .addClass('myaccount-joinus');
	h3Auth
	    .addClass('myaccount')
	    .html(_context.getTranslation('NG_MY_ACCOUNT'));
	
	if (_context._config.__AUTH.IS_LOGGED_IN) {
	    var logoutLink = $(document.createElement('a'))
		.attr({
		    href:'/auth/logout'
		})
		.html(_context.getTranslation('NG_LOGOUT'));
	    $(document.createElement('li'))
		.append(logoutLink)
		.appendTo(ulAuth);
	    
	    var myAccountLink = $(document.createElement('a'))
	    .attr({
		href:'/account/myaccount'
	    })
	    .html(_context.getTranslation('NG_MYACCOUNT'))
	    //.html('MY account');
	    
	    $(document.createElement('li'))
	    .append(myAccountLink)
	    .appendTo(ulAuth);
	}
	else {
	    var registerLink = $(document.createElement('a'))
		.attr({
		    href:'JavaScript:void(0);'
		})
		.html(_context.getTranslation('NG_LOGIN')+'/'+_context.getTranslation('NG_REGISTER_HERE'))
		.click(function(){
		    _context.showLoginWindow(null);
		});
	    $(document.createElement('li'))
		.append(registerLink)
		.appendTo(ulAuth);
	}
	if (_context._config.__AUTH.IS_LOGGED_IN) {
	var changePasswordLink = $(document.createElement('a'))
	    .attr({
		href:'JavaScript:void(0);'
	    })
	    .html(_context.getTranslation('NG_CHANGE_PASSWORD'))
	    .click(function(){
		_context.showChangePasswordWindow();
	    });	
	$(document.createElement('li'))
	    .append(changePasswordLink)
	    .appendTo(ulAuth);
	}
	else{
	    var changePasswordLink = $(document.createElement('a'))
	    .attr({
		href:'JavaScript:void(0);'
	    })
	    .html(_context.getTranslation('NG_FORGOT_PASSWORD'))
	    .click(function(){
		_context.showLoginWindow(null,'','',1);
	    });	
	$(document.createElement('li'))
	    .append(changePasswordLink)
	    .appendTo(ulAuth);
	}
	var myAddressBookLink = $(document.createElement('a'))
		.attr({
		    href:'JavaScript:void(0);'
		})
		.html(_context.getTranslation('NG_MY_ADDRESSBOOK'))
		.click(function(){
		  _context.showAddressBook();
		});
	    $(document.createElement('li'))
		.append(myAddressBookLink)
		.appendTo(ulAuth);
	
	return {
	    h3Auth:h3Auth,
	    ulAuth:ulAuth
	};
    },
    showAddressBook:function(){
	 var _context = this;
	if (!_context._config.__AUTH.IS_LOGGED_IN) {
	    _context.showLoginWindow(null);
	    return;
	}
	window.location.href = "/account/myaddressbook";
    },
    setMenu:function(){
	var _context = this;
	$('.myaccount-joinus').remove();
	var _menu1 = _context.joinUsMenu();
	var _menu2 = _context.myAccountMenu();
	
	$('#left-menu ul:first')
	    //.after(_menu1.h3Auth, _menu1.ulAuth, _menu2.h3Auth, _menu2.ulAuth);
	    .after(_menu2.h3Auth, _menu2.ulAuth);
    },
    setAuth:function(){
	var _context = this;
	_context.setToolBar();
	_context.setMenu();
    },
    setForgetPasswordBox:function(loginLeft){
	var _context = this;
	
	var loginBox = $(document.createElement('div'))
	    .addClass('login-box');
	
	var boxtopcrn = $(document.createElement('div'))
	    .addClass('box-246-top-crn')
	    .appendTo(loginBox);
	
	var boxbtcrn = $(document.createElement('div'))
	    .addClass('box-246-bt-crn')
	    .appendTo(boxtopcrn);
	
	var boxmidcrn = $(document.createElement('div'))
	    .addClass('box-246-mid-crn')
	    .appendTo(boxbtcrn);
	
	$(document.createElement('h4'))
	    .addClass('h4')
	    .html(_context.getTranslation('NG_FORGOT_PASSWORD'))
	    .appendTo(boxmidcrn);
	
	$(document.createElement('label'))
	    .addClass('errorlabel')	    
	    .appendTo(boxmidcrn);
	    
	//Login Email Start
	$(document.createElement('label'))
	    .addClass('popup-label')
	    .html(_context.getTranslation('NG_EMAIL_ID'))
	    .appendTo(boxmidcrn);
	var loginEmailTB = $(document.createElement('input'))
	    .attr({
		type:'text',
		maxlength:100
	    })
	    .addClass('popup-textBox');
	$(document.createElement('p'))
	    .html(loginEmailTB)
	    .appendTo(boxmidcrn);
	//Login Email End
	
	//Forgot Password Start
	var linkForgotPassword = $(document.createElement('a'))
	    .addClass('popup-link')
	    .attr({
		id:'forgetlink',
		title:_context.getTranslation('NG_LOGIN_AGAIN'),
		href:'JavaScript:void(0);'
	    })
	    .html(_context.getTranslation('NG_LOGIN_AGAIN'));
	$(document.createElement('p'))
	    .addClass('login-margin')
	    .css({
		float:'right',
		'text-align':'right'
	    })
	    .html(linkForgotPassword)	    
	    .appendTo(boxmidcrn)
	    .click(function(){
		_context.setLoginBox(loginLeft);
	    });
	//Forgot Password End
	   
	var btnLogin = $(document.createElement('img'))
	    .attr({
		src:_context.getImageUrl('submit.png', true),
		border:0
	    })
	    .css({
		cursor:'pointer'
	    })
	    .click(function(){
		$('.popup-textBox-error', loginBox).removeClass('popup-textBox-error');
		$('.popup-textBox-errorMessage', loginBox).remove();
		
		if (loginEmailTB.isEmpty()) {
		    _context.setLoginError(loginEmailTB, _context.getTranslation('NG_PLEASE_ENTER_EMAIL'));
		}
		else if (!loginEmailTB.emailCheck()) {
		    _context.setLoginError(loginEmailTB, _context.getTranslation('NG_VALID_EMAIL'));
		}
		if ($('.popup-textBox-error', loginBox).length > 0) {
		    return;
		}
		$.ajax({
		    url:'/auth/forgotpassword',
		    type:'POST',
		    data: {
			username:loginEmailTB.val()
		    },
		    dataType:'json',
		    success: function(jData) {
			if (jData.success) {
			    //_context.setLoginBox(loginLeft);
			    $('.errorlabel').html(jData.message)
			    .css({
				color:'green'
			    });
			}
			else {
			    _context.setLoginError(loginEmailTB, jData.cause);
			}
		    }
		});
		return;
	    });
	$(document.createElement('p'))
	    .addClass('login-margin')
	    .html(btnLogin)
	    .appendTo(boxmidcrn);
	$(':text, :password', loginBox).keydown(function(e){
	    if (e.keyCode == 13) {
		btnLogin.click();
	    }
	});
	loginLeft.html(loginBox);
    },
    setLoginBox:function(loginLeft,loginEmailValue,relogin){
	var _context = this;	
	var loginBox = $(document.createElement('div'))
	    .addClass('login-box');
	    
	var boxtopcrn = $(document.createElement('div'))
	.addClass('box-246-top-crn')
	.appendTo(loginBox);
	
	var boxbtcrn = $(document.createElement('div'))
	.addClass('box-246-bt-crn')
	.appendTo(boxtopcrn);
	
	var boxmidcrn = $(document.createElement('div'))
	.addClass('box-246-mid-crn')
	.appendTo(boxbtcrn);
	
	$(document.createElement('h4'))
	    .addClass('h4')
	    .html(_context.getTranslation('NG_LOGIN'))
	    .appendTo(boxmidcrn);
	
	//Login Email Start
	$(document.createElement('label'))
	    .addClass('popup-label')
	    .html(_context.getTranslation('NG_EMAIL_ID'))
	    .appendTo(boxmidcrn);
	var loginEmailTB = $(document.createElement('input'))
	    .attr({
		type:'text',
		maxlength:100,
		value:loginEmailValue
	    })
	    .addClass('popup-textBox');
	$(document.createElement('p'))
	    .html(loginEmailTB)
	    .appendTo(boxmidcrn);
	//Login Email End
	
	//Login Password Start
	$(document.createElement('label'))
	    .addClass('popup-label')
	    .html(_context.getTranslation('NG_PASSWORD'))
	    .appendTo(boxmidcrn);
	var loginPasswordTB = $(document.createElement('input'))
	    .attr({
		type:'password',
		maxlength:20
	    })
	    .addClass('popup-textBox');
	$(document.createElement('p'))
	    .html(loginPasswordTB)
	    .appendTo(boxmidcrn);
	//Login Password End
	
	//Forgot Password Start
	var linkForgotPassword = $(document.createElement('a'))
	    .addClass('popup-link')
	    .attr({
		title:_context.getTranslation('NG_FORGOT_PASSWORD'),
		href:'JavaScript:void(0);'
	    })
	    .html(_context.getTranslation('NG_FORGOT_PASSWORD'));
	$(document.createElement('p'))
	    .addClass('login-margin')
	    .css({
		float:'right',
		'text-align':'right'
	    })
	    .html(linkForgotPassword)	    
	    .appendTo(boxmidcrn)
	    .click(function(){
		_context.setForgetPasswordBox(loginLeft);
	    });
	//Forgot Password End
	   
	var btnLogin = $(document.createElement('img'))
	    .attr({
		src:_context.getImageUrl('login-bt.gif', true),
		border:0
	    })
	    .css({
		cursor:'pointer'
	    })
	    .click(function(){
		$('.popup-textBox-error', loginBox).removeClass('popup-textBox-error');
		$('.popup-textBox-errorMessage', loginBox).remove();
		
		if (loginEmailTB.isEmpty()) {
		    _context.setLoginError(loginEmailTB, _context.getTranslation('NG_PLEASE_ENTER_EMAIL'));
		}
		else if (!loginEmailTB.emailCheck()) {
		    _context.setLoginError(loginEmailTB, _context.getTranslation('NG_VALID_EMAIL'));
		}
		if (loginPasswordTB.isEmpty()) {
		    _context.setLoginError(loginPasswordTB, _context.getTranslation('NG_VALID_PASSWORD'));
		}
		else if (loginPasswordTB.val().length < 6) {
		    _context.setLoginError(loginPasswordTB, _context.getTranslation('NG_PLEASE_ENTER_PASSWORD_LENGTH'));
		}
		if ($('.popup-textBox-error', loginBox).length > 0) {
		    return;
		}
		var _dialog = loginLeft.data('_dialog');
		var _cb = loginLeft.data('cb');
		$.ajax({
		    url:'/auth/login',
		    type:'POST',
		    data: {
			username:loginEmailTB.val(),
			password:loginPasswordTB.val()
		    },
		    dataType:'json',
		    success: function(jData) {
			if (jData.success) {
			    _dialog.dialog('close');
			    _context._config.__AUTH = jData.__AUTH;
			    _context._config.CART.ITEM_COUNT = jData.ITEM_COUNT;
			    _context._config.USER.PROJECT_COUNT = jData.PROJECT_COUNT;
			    _context.setAuth();			    
			    
			    _context.setSWFAuth(_cb);
			    //alert(relogin);
			    //alert(document.URL);
			    if(relogin=='1'){
				window.parent.location=document.URL;
			    }
			    }
			else {
			    _context.setLoginError(loginEmailTB, jData.cause);
			    _context.setLoginError(loginPasswordTB, jData.cause);
			}
		    }
		});
		return;
	    });
	$(document.createElement('p'))
	    .addClass('login-margin')
	    .html(btnLogin)
	    .appendTo(boxmidcrn);
	$(':text, :password', loginBox).keydown(function(e){
	    if (e.keyCode == 13) {
		btnLogin.click();
	    }
	});
	loginLeft.html(loginBox);
    },
    showLoginWindow: function(cb,loginEmailValue,relogin,forgotdirect) {
        var _context = this;	
	var popup = $(document.createElement('div'))
	    .addClass('popup');
	$(document.createElement('div'))
	    .addClass('login-message')
	    .html(_context.getTranslation('NG_CREATE_FREE_ACCOUNTMSG'))
	    .appendTo(popup);
	
	var loginLeft = $(document.createElement('div'))
	    .addClass('login-wrapper')
	    .addClass('login-left');
	_context.setLoginBox(loginLeft,loginEmailValue,relogin);
	
	if(forgotdirect==1){
	    _context.setForgetPasswordBox(loginLeft);
	}
	var signupBox = $(document.createElement('div'))
	.addClass('signup-box');
	$(document.createElement('h3'))
	    .addClass('h3')
	    .html(_context.getTranslation('NG_NOT_A_MEMBER_JOIN_NOW'))
	    .appendTo(signupBox);
	
	//Signup Name Start
	var namediv=$(document.createElement('div'))
	.addClass('row')
	.appendTo(signupBox);
	
	$(document.createElement('label'))
	    .addClass('popup-label')
	    .html(_context.getTranslation('NG_NAME'))
	    .appendTo(namediv);
	    
	var signupFullNameTB = $(document.createElement('input'))
	    .attr({
		type:'text',
		maxlength:100
	    })
	    .addClass('popup-textBox');
	$(document.createElement('p'))
	    .addClass('clearfix')
	    .html(signupFullNameTB)
	    .appendTo(namediv);
	//Signup Name End
	
	//Signup Email Start
	$(document.createElement('label'))
	    .addClass('popup-label')
	    .html(_context.getTranslation('NG_EMAIL_ID'))
	    .appendTo(signupBox);
	var signupEmailTB = $(document.createElement('input'))
	    .attr({
		type:'text',
		maxlength:100,
		value:loginEmailValue
	    })
	    .addClass('popup-textBox');
	$(document.createElement('p'))
	    .addClass('clearfix')
	    .html(signupEmailTB)
	    .appendTo(signupBox);
	//Signup Email End
	
	//Signup Password Start
	$(document.createElement('label'))
	    .addClass('popup-label')
	    .html(_context.getTranslation('NG_PASSWORD'))
	    .appendTo(signupBox);
	var signupPasswordTB = $(document.createElement('input'))
	    .attr({
		type:'password',
		maxlength:20
	    })
	    .addClass('popup-textBox');
	$(document.createElement('p'))
	    .addClass('clearfix')
	    .html(signupPasswordTB)
	    .appendTo(signupBox);
	//Signup Password End
	
	//Signup Confirm Password Start
	$(document.createElement('label'))
	    .addClass('popup-label')
	    .html(_context.getTranslation('NG_CONFIRM_PASSWORD'))
	    .appendTo(signupBox);
	var signupConfirmPasswordTB = $(document.createElement('input'))
	    .attr({
		type:'password',
		maxlength:20
	    })
	    .addClass('popup-textBox');
	$(document.createElement('p'))
	    .addClass('clearfix')
	    .html(signupConfirmPasswordTB)
	    .appendTo(signupBox);
	//Signup Confirm Password End
	
	var signupTermsChkBox = $(document.createElement('input'))
	    .attr({
		type:'checkbox'
	    })
	    .css({
		'margin-right':'5px'
	    });
	var linkTerms = $(document.createElement('a'))
	    .addClass('popup-link')
	    .attr({
		href:'/page/terms',
		target:'_blank'
	    })
	    .css({
		'margin-left':'5px'
	    })
	    .html(_context.getTranslation('NG_TERMS_AND_CONDITIONS'));
	$(document.createElement('div'))
	    .addClass('login-margin')
	    .append(signupTermsChkBox, _context.getTranslation('NG_MEMOPRODUCTION_AGREEMENT'), linkTerms)
	    .appendTo(signupBox);
	
	var loginRight = $(document.createElement('div'))
	    .addClass('login-wrapper')
	    .addClass('login-right')
	    .html(signupBox);
	var btnRegister = $(document.createElement('img'))
	    .attr({
		src:_context.getImageUrl('sign-up-bt.gif', true),
		border:0
	    })
	    .css({
		cursor:'pointer'
	    })
	    .click(function(){
		$('.popup-textBox-error', signupBox).removeClass('popup-textBox-error');
		$('.popup-textBox-errorMessage', signupBox).remove();
		
		if (signupFullNameTB.isEmpty()) {
		    _context.setLoginError(signupFullNameTB, _context.getTranslation('NG_VALIDATE_NAME_MSG'));
		}
		if (signupEmailTB.isEmpty()) {
		    _context.setLoginError(signupEmailTB, _context.getTranslation('NG_PLEASE_ENTER_EMAIL'));
		}
		else if (!signupEmailTB.emailCheck()) {
		    _context.setLoginError(signupEmailTB, _context.getTranslation('NG_VALID_EMAIL'));
		}
		if (signupPasswordTB.isEmpty()) {
		    _context.setLoginError(signupPasswordTB, _context.getTranslation('NG_VALID_PASSWORD'));
		}
		else if (signupPasswordTB.val().length < 6) {
		    _context.setLoginError(signupPasswordTB, _context.getTranslation('NG_PLEASE_ENTER_PASSWORD_LENGTH'));
		}
		else if (signupPasswordTB.val() != signupConfirmPasswordTB.val()) {
		    _context.setLoginError(signupPasswordTB, _context.getTranslation('NG_VALIDATE_PASS_CONFIRM'));
		    _context.setLoginError(signupConfirmPasswordTB, _context.getTranslation('NG_VALIDATE_PASS_CONFIRM'));
		}
		if (!signupTermsChkBox.prop('checked')) {
		    _context.setLoginError(signupTermsChkBox, _context.getTranslation('NG_ACCEPT_REVIEW_TERMS'));
		}
		if ($('.popup-textBox-error', signupBox).length > 0) {
		    return;
		}
		$.ajax({
		    url:'/auth/register',
		    type:'POST',
		    data: {
			firstname:signupFullNameTB.val(),
			username:signupEmailTB.val(),
			password:signupPasswordTB.val()
		    },
		    dataType:'json',
		    success: function(jData) {
			if (jData.success) {
			    var _dialog = loginRight.data('_dialog');
			    _dialog.dialog('close');
			    _context._config.__AUTH = jData.__AUTH;
			    _context._config.CART.ITEM_COUNT = jData.ITEM_COUNT;
			    _context._config.USER.PROJECT_COUNT = jData.PROJECT_COUNT;
			    _context.setAuth();
			    _context.setSWFAuth(cb);		    
			    
			}
			else {
			    _context.setLoginError(signupEmailTB, jData.cause);
			}
		    }
		});
		return;
	    });
	$(document.createElement('p'))
	    .addClass('login-margin')
	    .html(btnRegister)
	    .appendTo(loginRight);
	$(document.createElement('div'))
	    .addClass('login-middle')
	    .append(loginLeft, loginRight)
	    .appendTo(popup);
	$(document.createElement('div'))
	    .addClass('login-images-bottom')
	    .appendTo(popup);
	$(':text, :password', signupBox).keydown(function(e){
	    if (e.keyCode == 13) {
		btnRegister.click();
	    }
	});
	var uidialog = $(popup).dialog({
	    width:800,
	    title:_context.getTranslation('NG_Login_Or_Signup'),
	    modal:true,
	    resizable:false,
	    close:function(event, ui) {
		$(this).remove();
	    }
	});
	loginLeft.add(loginRight).data('_dialog', uidialog);
	loginLeft.add(loginRight).data('cb', cb);
    },
    showChangePasswordWindow: function() {
        var _context = this;
	if (!_context._config.__AUTH.IS_LOGGED_IN) {
	    _context.showLoginWindow(null);
	    return;
	}
	var popup = $(document.createElement('div'))
	    .addClass('popup');
	$(document.createElement('p'))
	    .addClass('msgtext')
	    .appendTo(popup);
	
	var changeoldpasswordBox = $(document.createElement('div'))
	    .addClass('login-wrapper')
	    .addClass('changepassword')
	    .css({
		background:'#fff',
		padding:'5px',
		width:'278px',
		float:'left'
		//border:'1px solid #FDE9F1'
	    })
	    
	var boxtopcrn = $(document.createElement('div'))
	.addClass('box-246-top-crn')
	.appendTo(changeoldpasswordBox);
	
	var boxbtcrn = $(document.createElement('div'))
	.addClass('box-246-bt-crn')
	.appendTo(boxtopcrn);
	
	var boxmidcrn = $(document.createElement('div'))
	.addClass('box-246-mid-crn')
	.appendTo(boxbtcrn);
		
	//Old Password Start
	var lblOldPassword = $(document.createElement('label'))
	    .addClass('popup-label')
	    .css({
		padding:'5px'
	    })
	    .html(_context.getTranslation('NG_OLD_PASSWORD'))
	    .appendTo(boxmidcrn);
	    
	var OldPasswordTB = $(document.createElement('input'))
	    .attr({
		type:'password',
		maxlength:22
	    })
	    .addClass('popup-textBox')
	    /*.css({
		padding:'5px'
	    })*/;
	$(document.createElement('p'))
	    .addClass('clearfix')
	    .html(OldPasswordTB)
	    .appendTo(boxmidcrn);
	//Old Password End
	
	var changenewpasswordBox = $(document.createElement('div'))
	    .addClass('login-wrapper')
	    .addClass('changenewpassword')
	    .css({
		background:'#FDE9F1',
		padding:'5px',
		width:'280px',
		float:'left' 
	    })
	
	//New Password Start
	var lblNewPassword = $(document.createElement('label'))
	    .addClass('popup-label')
	    .css({
		padding:'5px'
	    })
	    .html(_context.getTranslation('NG_NEW_PASSWORD'))
	    .appendTo(boxmidcrn);
	    
	var NewPasswordTB = $(document.createElement('input'))
	    .attr({
		type:'password',
		maxlength:22
	    })
	    .addClass('popup-textBox')
	    /*.css({
		padding:'5px'
	    })*/;
	$(document.createElement('p'))
	    .addClass('clearfix')
	    .html(NewPasswordTB)
	    .appendTo(boxmidcrn);
	//New Password End
	
	//Confirm Password Start
	var lblConfirmPassword = $(document.createElement('label'))
	    .addClass('popup-label')
	    .css({
		padding:'5px'
	    })
	    .html(_context.getTranslation('NG_CONFIRM_PASSWORD'))
	    .appendTo(boxmidcrn);
	    
	var ConfirmPasswordTB = $(document.createElement('input'))
	    .attr({
		type:'password',
		maxlength:22
	    })
	    .addClass('popup-textBox')
	    /*.css({
		padding:'5px'
	    })*/;
	$(document.createElement('p'))
	    .addClass('clearfix')
	    .html(ConfirmPasswordTB)
	    .appendTo(boxmidcrn);
	//Confirm Password End
	
	var btnLogin = $(document.createElement('img'))
	    .attr({
		src:_context.getImageUrl('submit.png', true),
		border:0
	    })
	    .css({
		cursor:'pointer'
	    })
	    .click(function(){
		$('.popup-textBox-error', changenewpasswordBox).removeClass('popup-textBox-error');
		$('.popup-textBox-errorMessage', changenewpasswordBox).remove();
		
		$('.popup-textBox-error', changeoldpasswordBox).removeClass('popup-textBox-error');
		$('.popup-textBox-errorMessage', changeoldpasswordBox).remove();
		
		if (OldPasswordTB.isEmpty()) {
		    _context.setLoginError(OldPasswordTB, _context.getTranslation('NG_VALID_PASSWORD'));
		}		
		if (NewPasswordTB.isEmpty()) {
		    _context.setLoginError(NewPasswordTB, _context.getTranslation('NG_VALID_PASSWORD'));
		}
		else if (NewPasswordTB.val().length < 6) {
		    _context.setLoginError(NewPasswordTB, _context.getTranslation('NG_PLEASE_ENTER_PASSWORD_LENGTH'));
		}
		if (ConfirmPasswordTB.isEmpty()) {
		    _context.setLoginError(ConfirmPasswordTB, _context.getTranslation('NG_VALID_PASSWORD'));
		}
		else if (NewPasswordTB.val() != ConfirmPasswordTB.val()) {
		    _context.setLoginError(NewPasswordTB, _context.getTranslation('NG_VALIDATE_PASS_CONFIRM'));
		    _context.setLoginError(ConfirmPasswordTB, _context.getTranslation('NG_VALIDATE_PASS_CONFIRM'));
		}
		
		if ($('.popup-textBox-error', changenewpasswordBox).length > 0) {
		    return;
		}
		
		if ($('.popup-textBox-error', changeoldpasswordBox).length > 0) {
		    return;
		}
		$.ajax({
		    url:'/auth/changepassword',
		    type:'POST',
		    data: {
			oldpassword:OldPasswordTB.val(),
			newpassword:NewPasswordTB.val()
		    },
		    dataType:'json',
		    success: function(jData) {
			if (jData.success) {
			  //  _dialog.dialog('close');
			  $('.msgtext').html(jData.message)
			  .css({
				'color': '#2BA011',
				'font-weight':'bold',
				'padding': '60px 5px',
				'text-align': 'center'
			    })
			  boxtopcrn.remove();
			}
			else {
			    $('.msgtext').html(jData.cause)
			    .css({
				color:'#E02F0F',
				'padding': '10px 0px',
				'text-align': 'center'
			    });
			   // _context.setLoginError(OldPasswordTB, jData.cause);			   
			}
		    }
		});
		return;
	    });
	$(document.createElement('p'))
	    .addClass('login-margin')
	    .html(btnLogin)
	    .appendTo(boxmidcrn);
	$(':text, :password', changenewpasswordBox).keydown(function(e){
	    if (e.keyCode == 13) {
		btnLogin.click();
	    }
	});
	
	$(document.createElement('div'))
	    .css({
		width:'280px',
		margin:'20px auto 0px'
	    })
	    //.append(changeoldpasswordBox,changenewpasswordBox)
	    .append(changeoldpasswordBox)
	    .appendTo(popup);
	    
	$(document.createElement('div'))
	    .addClass('changepassword-images-bottom')
	    .appendTo(popup);
	    
	var _dialog = $(popup).dialog({
	    width:600,
	    title:_context.getTranslation('NG_CHANGE_PASSWORD'),
	    modal:true,
	    resizable:false,
	    close:function(event, ui) {
		$(this).remove();
	    }
	});
    },
    orderNow:function(elem) {
        var obj = this;
        var config = {
            callBack: obj.orderNow,
            scope: obj,
            params: [elem]
        };
        var shareKey = $(elem).attr('shareKey');
        if ($.inArray(shareKey, 'MEMOCREATION', 'MYORDER')) {
            var albumID = $(elem).attr('albumId');
            $.ajax({
                url: 'myproject.php',
                data: {
                    action: 'orderNowMemoCreationAction',
                    albumID: albumID
                },
                type: 'POST',
                dataType: 'json',
                success: function(jData, status) {
                    if (jData.success) {
                        window.location.href = jData.redirectTo;
                    }
                    else {
                        //alert(jData.message);
                        obj.showLoginWindow(config);
                    }
                }
            });
        }
        else {
            $.ajax({
                url: 'preview-album.php?.key=' + shareKey,
                data: {
                    action: 'orderNowHandler'
                },
                type: 'POST',
                dataType: 'json',
                success: function(jData, status) {
                    if (jData.success) {
                        window.location.href = jData.redirectTo;
                    }
                    else {
                        //alert(jData.message);
                        obj.showLoginWindow(config);
                    }
                }
            });
        }
    },
    editNow: function(elem) {
        var obj = this;
		
		$.blockUI({
			message: '<img src="/images/preloader.gif" alt="" />',
			css: {
				background:'none',
				border:'none'
			}
		});

        var config = {
            callBack: obj.editNow,
            scope: obj,
            params: [elem]
        };
	if ($('#editFormContainer').length == 0) {
	    $('body').prepend('<div id="editFormContainer" style="display:none;"></div>');
	}
        var shareKey = $(elem).attr('shareKey');
        if ($.inArray(shareKey, 'MEMOCREATION', 'MYORDER')) {
            var albumID = $(elem).attr('albumId');
            $.ajax({
                url: 'myproject.php',
                data: {
                    action: 'editNowMemoCreationAction',
                    albumID: albumID
                },
                type: 'POST',
                dataType: 'json',
                success: function(jData, status) {
                    if (jData.success) {
                        $('#editFormContainer').html(jData.editForm);
                        $('#frm_editor').submit();
                    }
                    else {
                        //alert(jData.message);
						$.unblockUI();
                        obj.showLoginWindow(config);
                    }
                }
            });
        }
        else {
            $.ajax({
                url: 'preview-album.php?.key=' + shareKey,
                data: {
                    action: 'editNowHandler'
                },
                type: 'POST',
                dataType: 'json',
                success: function(jData, status) {
                    if (jData.success) {
                        $('#editFormContainer').html(jData.editForm);
                        $('#frm_editor').submit();
                    }
                    else {
                        //alert(jData.message);
						$.unblockUI();
                        obj.showLoginWindow(config);
                    }
                }
            });
        }
    },
    previewAlbum: function(_itemData){
        var _context = this;
	var elem = null;
        var albId = _itemData.albumcode;
        var productCode = _itemData.productCode;
        var productName = _itemData.albumName;
        var productInfo = $(elem).attr('productInfo');
        var previewHint = $('#previewHint').val();
        var productDate = $(elem).attr('productDate');
        var shareKey = $(elem).attr('shareKey');
        var langCode = _context._config._currentLangCode.toUpperCase();
	var productType  =$(elem).attr('productType');
	var version = 'v1.1';
	
        var html = '';
        html += '<div class="proj_prev_wrap">';
        html += '<table cellspacing="0" cellpadding="0" width="99%" class="preview_table">';
        html += '<tr>';
        html += '<td class="project-view" style="padding:10px 0px;border-bottom:1px solid #D1D1D1;">';
//        html += '<div style="float:left; padding-left:15px;"><span class="name">' + productName + '</span> <strong>' + productInfo + '</strong><br/>' + productDate + '</div>';
        html += '<div class="image_preview_details"><div class="l"><span><img src="uploadedData/productIcons/preview/'+productCode+'.jpg">&nbsp;</span></div><div class="r"><span class="name">' + productName + '</span> <strong>' + productInfo + '</strong><br/>' + productDate + '</div></div>';
        html += '<div class="preview_order_now" style="float:right; height:36px !important;">';
        if (shareKey != undefined) {
            html += '<a href="javascript:void(0);" albumId="' + albId + '" shareKey="' + shareKey + '" style="height:36px; width:76px; display:inline-block;" onclick="JavaScript: js.orderNow(this);"></a>';
        }
        else {
            html += '<a href="javascript:void(0);" albumId="' + albId + '" style="height:36px; width:76px; display:inline-block;" onclick="JavaScript: js.orderThisProject(this);"></a>';
        }
        html += '</div>';
        
        html += '</td>';
        html += '</tr>';
        html +='</table>';
		html +='<div class="etf msg" style="width:750px" id="add_semicolon">'+previewHint+'</div>';
        //html += '<div class="project-view"><span class="name">'+productName+'</span> <strong>'+productInfo+'</strong><br/>'+productDate+'</div>';		
        html += '</div>';
        html += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="800" height="600">';
        html += '<param name="FlashVars" value="albumId=' + albId + '&langCode=' + langCode + '&productType='+productType +'" />';
        html += '<param name="movie" value="preview/Preview.swf?v='+version+'" />';
        html += '<param name="quality" value="high" />';
        html += '<param name="wmode" value="transparent" />';
        html += '<param name="bgcolor" value="#869ca7" />';
        html += '<param name="allowScriptAccess" value="sameDomain" />';
        if (!$.browser.msie) {
            html += '<object type="application/x-shockwave-flash" data="preview/Preview.swf?v='+version+'" width="800" height="600">';
            html += '<param name="FlashVars" value="albumId=' + albId + '&langCode=' + langCode + '&productType='+productType +'" />';
            html += '<param name="quality" value="high" />';
            html += '<param name="wmode" value="transparent" />';
            html += '<param name="bgcolor" value="#869ca7" />';
            html += '<param name="allowScriptAccess" value="sameDomain" />';
        }
        html += '<a href="http://www.adobe.com/go/getflashplayer">'
        html += '<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash Player" />'
        html += '</a>'
        if (!$.browser.msie) {
            html += '</object>'
        }
        html += '</object>';
	var popup = '<div>' + html + '</div>';
        //$('#facebox').css({visibility: 'visible', width: '840px'});
        var _dialog = $(popup).dialog({
	    width:840,
	    title:_context.getTranslation('NG_Login_Or_Signup'),
	    modal:true,
	    resizable:false,
	    close:function(event, ui) {
		$(this).remove();
	    }
	});
    },
    likeUnlike: function(elem) {
        var obj = this;
        $.ajax({
            url: 'myproject.php',
            type: 'POST',
            data: {
                    action: 'likeUnlikeHandler',
                    score: $(elem).attr('score'),
                    albumID: $(elem).attr('albumID')
            },
	    dataType: 'json',
            success: function(jData, status) {
		if (jData.success) {
		    $(elem).parent().html(jData.html);
		}
		else {
		    var config = {
			callBack: obj.likeUnlike,
			scope: obj,
			params: [elem]
		    };
		    obj.showLoginWindow(config);
		}
            }
        });
    },
    setLoginError:function(field, message){
	var errorMessageBox = $(document.createElement('span'))
	    .addClass('popup-textBox-errorMessage')
	    .html(message);
	field
	    .addClass('popup-textBox-error')
	    .after(errorMessageBox);
    },
    changeFeatureImage: function(id, url, imgName, Active, AThumb, Inactive, INThumb) {
	var obj = this;	
	$('#'+id).attr('src', url+"/"+imgName);
	$('#'+ Active).attr('src', url+"/Active_"+AThumb);	
	$('#'+ Inactive).attr('src', url+"/"+INThumb);
    },
    getImageUrl:function(imagePath, isLang){
	var _context = this;
	if (isLang) {
	    return '/images/' + _context._config._currentLangCode + '/' + imagePath;
	}
	return '/images/' + imagePath;
    },
    subscribeNewsletter:function(cform) {
        var obj = this;
	$('#subs_successDiv').hide();
	$('#subs_errorDiv').hide();
	
        var msgArray = new Array();
        $('.reqField', cform).each(function(){
            if ($(this).isEmpty()) {
                msgArray.push($(this).attr('emptyText'));
            }
            else if ($(this).hasClass('validemail') && !$(this).emailCheck()) {
                msgArray.push($(this).attr('validEmail'));
            }
        });
        
        if (msgArray.length > 0) {
	    //alert(msgArray.join('\n'));
	    $('#subs_errorDiv').html(msgArray.join('<br />'));
	    $('#subs_errorDiv').show();
            return false;
        }	
	
        $.ajax({
            url: '/subscribenewsletter',
            data : $(cform).serialize(),
            type: 'POST',
            dataType: 'json',
            success: function(jData, status) {
                if (jData.success) {
                    $(':text,textarea,select', cform).val('');                    
                    $('#subs_errorDiv').hide();
		    $('#subs_successDiv').show();		    
                    $('#subs_successDiv').html(jData.message);
                }
                else {
                    alert(jData.cause.join('\n'));
                }
            }
        });
        return false;        
    },
    setSWFAuth: function(cb) {
	var _context = this;
	
	if (cb != null) {
	    cb.callBack.apply(cb.scope, cb.params);
	}
    },
    cancelInvitation: function(elem) {
	$('.popup').dialog('close');	
    },
    sendShareInvitation: function(shareform) {

	$.ajax({
            url: '/account/sendShareInvitation/',
            data : $(shareform).serialize(),
            type: 'POST',
            dataType: 'json',
            success: function(jData, status) {
                if (jData.success) {                   	    
                    $('.popup').html(jData.thankstpl);		    
                }
                else {		   
                    $('#shareErrorBox').html(jData.cause)
		    .css({
			color:'red'
		    });
                }
            }
        });
        return false; 
    },
    deleteSharedEmail : function(email,albumid){
	var r=confirm("Are U sure? You want to delete this.");
	if (r==true)
	  {
	    $.ajax({
            url: '/account/deleteSharedEmail/',
            data : 'emailid='+email+'&albumid='+albumid,
            type: 'POST',
            dataType: 'json',
            success: function(jData, status) {
                if (jData.success) { 
                    $('#user_email_list').html(jData.emailList);
                }
                else {		  
                    $('#errorDiv').html(jData.cause);
                }
            }
        });
	  }
	  else
	  {
	    return false;
	  }
	  return false;
    },
    addToCart:function(elem) {
	var _context = this;
	var albumCode = $(elem).attr('album');
	_context.addItemToCart({
	    albumCode:albumCode
	});
	
        return false; 
    },
    addItemToCart:function(_itemData){	
	var _context = this;
	
	$.ajax({
            url:'/customer/cart/addtocart',
            data:{
		_itemData:_itemData
	    },
            type:'POST',
            dataType:'json',
            success:function(jData, status) {
                if (jData.success) {                   	    
                    window.location.href = jData.redirect;
                }
                else {		   
                    alert(jData.cause);		    
                }
            }
        });
    },
    addAppItemToCart:function(_itemData){
	
	var _context = this;
	
	$.ajax({
            url:'/application/customer/cart/addtocart',
            data:{
		_itemData:_itemData
	    },
            type:'POST',
            dataType:'json',
            success:function(jData, status) {
                if (jData.success) {                   	    
                    window.location.href = jData.redirect;
                }
                else {		   
                    alert(jData.cause);		    
                }
            }
        });
    },
    nl2br:function(str, is_xhtml) {
        var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br />' : '<br>';
        return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + breakTag + '$2');
    },
   
   editAlbumDescription: function(elem, ItemOfflineOnline) {
	var obj = this;
	var albumDescription = $(elem).attr('albumDescription');
	if ($(elem).next('.txtAlbumDescriptionBox').length == 0) {
	    $('.txtAlbumDescriptionBox').remove();
	    $('.td-description-container-save').removeClass('td-description-container-save');
	    $(elem).addClass('td-description-container-save');
	    var elemDiv = $('<div class="td-description-container txtAlbumDescriptionBox" style="display:none;"></div>').insertAfter(elem);
	    elemDiv.html('<textarea class="txtAlbumDescription"></textarea>');
	    var elemTB = elemDiv.children();
	    elemTB.val(albumDescription);
	    if ($(elem).attr('isReadonly') == 'Yes') {
		elemTB.attr('readonly', true);
	    }
	    elemDiv.slideDown(300, function(){
		elemTB.focus();
	    });
	}
	else {
	    var elemDiv = $(elem).next('.txtAlbumDescriptionBox');
	    var elemTB = elemDiv.children();
	    if (albumDescription == elemTB.val()) {
		elemDiv.remove();
		$(elem).removeClass('td-description-container-save');
	    }
	    else {
		elemTB.attr('readonly', true);
		$.ajax({
		    url: '/account/saveprojectcomment',
		    type: 'POST',
		    data: {
			action: 'saveAlbumDescription',
			albumDescription: elemTB.val(),
			albumId: $(elem).attr('albumId'),
			itemdataFlag:ItemOfflineOnline
		    },
		    dataType: 'json',
		    success: function(jData, status) {
			$(elem).attr('albumDescription', elemTB.val());
			if (status =='success') {
			    elemDiv.remove();
			    $(elem).removeClass('td-description-container-save');
			}
			else {
			    elemTB.attr('readonly', false);
			}
		    }
		});
	    }
	}
	return;
	if ($(elem).attr('save') == 'false') {
	    var albumDescription = $(elem).parent().prev().text();
	    $(elem).parent().prev().html('<textarea class="txtAlbumDescription" onblur="JavaScript: js.saveAlbumDescription(this);"></textarea>');
	    var tb = $(elem).parent().prev().children();
	    tb.val(albumDescription);
	    tb.focus();
	    $(elem).attr({
		save: 'true',
		content: albumDescription,
		saving: 'false'
	    });
	}
	else {
	    var tb = $(elem).parent().prev().children();
	    tb.attr('readonly', true);
	    var albumDescription = obj.stripTags(tb.val());
	    if ($(elem).attr('saving') == 'false') {
		$(elem).attr('saving', 'true');
		if (albumDescription == $(elem).attr('content')) {
		    albumDescription = obj.nl2br(albumDescription);
		    setTimeout(function(){
			$(elem).parent().prev().html(albumDescription);
			$(elem).attr({
			    save: 'false',
			    content: '',
			    saving: 'false'
			});
			}, 500);
		}
		else {
		    $.ajax({
			url: obj._config.ajaxUrl,
			type: 'POST',
			data: {
			    action: 'saveAlbumDescription',
			    albumDescription: albumDescription,
			    albumId: $(elem).attr('albumId')
			},
			dataType: 'json',
			success: function(jData, status) {
			    albumDescription = obj.nl2br(jData.description);
			    $(elem).parent().prev().html(albumDescription);
			    $(elem).attr({
				save: 'false',
				content: '',
				saving: 'false'
			    });
			}
		    });
		}
	    }
	}
    },
	
	
	
	editAlbumDescriptionNew: function(elem, ItemOfflineOnline) {
	var obj = this;
	var descCont   =$(elem).parent().parent();
	var contObj    = $(elem).parent().parent().next();	
	var albumDescription = $(elem).attr('albumDescription');
	var descText    = obj.getTranslation('NG_DESCRIPTION');
	var saveDescTxt = obj.getTranslation('NG_SAVE_DESCRIPTION');	
	
	if ($(contObj).children('.description_box').length == 0) {
	    $('.description_box').remove();	
		$('img.imgSaveSrc').attr('src','../images/description_icon.gif');		
		$('font.saveDescText').html(descText);
		$(".white_roundedBt-active").each(function(i){
		   $(".white_roundedBt-active").removeClass('white_roundedBt-active');		 
		});		
		$('img.imgSaveSrc',descCont).attr('src','../images/save_icon.jpg');
		$('font.saveDescText',descCont).html(saveDescTxt);		
		$(elem).addClass('white_roundedBt-active');		
	    var elemDiv = $('<div class="description_box" style="display:none;"></div>').insertAfter(elem);
	    elemDiv.html('<textarea class="description_box_data"></textarea>');
	    var elemTB = elemDiv.children();
	    elemTB.val(albumDescription);
	    if ($(elem).attr('isReadonly') == 'Yes') {
		elemTB.attr('readonly', true);
	    }
	    elemDiv.slideDown(300, function(){
		elemTB.focus();
	    }).appendTo(contObj);
	}
	else {
	    $('img.imgSaveSrc').attr('src','../images/description_icon.gif');
		$('font.saveDescText').html(descText);
	    var elemDiv = $(contObj).children('.description_box');
	    var elemTB = elemDiv.children();
	    if (albumDescription == elemTB.val()) {
		elemDiv.remove();
		$(".white_roundedBt-active").each(function(i){
		   $(".white_roundedBt-active").removeClass('white_roundedBt-active');		  
		});		
		$(elem).addClass('white_roundedBt');
	    }
	    else {
		elemTB.attr('readonly', true);		
		$.ajax({
		    url: '/account/saveprojectcomment',
		    type: 'POST',
		    data: {
			action: 'saveAlbumDescription',
			albumDescription: elemTB.val(),
			albumId: $(elem).attr('albumId'),
			itemdataFlag:ItemOfflineOnline
		    },
		    dataType: 'json',
		    success: function(jData, status) {
			$(elem).attr('albumDescription', elemTB.val());
			if (status =='success') {
			    elemDiv.remove();
			    $(elem).removeClass('white_roundedBt-active').addClass('white_roundedBt');				
				$(".white_roundedBt-active").each(function(i){
				   $(".white_roundedBt-active").removeClass('white_roundedBt-active');				  
				});					
		        $(elem).addClass('white_roundedBt');
			}
			else {			     
			    elemTB.attr('readonly', false);
			}
		    }
		});
	    }
	}
	return;
    },
	showAuthorMessageNew: function(elem) {	
		$(".shareImgSrc").attr('src','../images/description_icon.gif');
		$(".shareImgSrc",elem).attr('src','../images/close_icon.gif');
		$("div.description_box").each(function(i){
		   $("div.description_box").addClass('disnone');
		});
		var subParent = $(elem).parent().parent();
		if($(elem).hasClass('white_roundedBt-active')){
			$(elem).removeClass('white_roundedBt-active');
			$(".shareImgSrc",elem).attr('src','../images/description_icon.gif');
			$(subParent).next().addClass('disnone');
		}
		else{			
			$("p.rltv a").each(function(i,elemObj){
				$(elemObj).removeClass('white_roundedBt-active');			  
			});	
			$(elem).addClass('white_roundedBt-active');	
			$(subParent).next().removeClass('disnone');
		}		
    },
	editAlbumDescriptionNewGrid : function(){
		//alert('hi');
	},

	showEmailMessageNew: function(elem) {
		$(".shareImgSrc").attr('src','../images/description_icon.gif');
		$(".shareImgSrc",elem).attr('src','../images/close_icon.gif');
		$("div.description_box").each(function(i){
		  $("div.description_box").addClass('disnone');
		});					
		var subParent = $(elem).parent().parent();
		if($(elem).hasClass('white_roundedBt-active')){			
			$(elem).removeClass('white_roundedBt-active');	
			$(".shareImgSrc",elem).attr('src','../images/description_icon.gif');
			$(subParent).next().addClass('disnone');
		}
		else{
			$("p.rltv a").each(function(i,elemObj){
				$(elemObj).removeClass('white_roundedBt-active');			  
			});	
			$(elem).addClass('white_roundedBt-active');	
			$(subParent).next().removeClass('disnone');
		}		
    },
	
	
	
	
	
	
	
	showAuthorMessage: function(elem) {
		$(elem).toggleClass('td-shared-desc-selected');
		$(elem).parent().next().next().toggleClass('disnone');				
		$(elem).parent().next().children().removeClass('td-shared-desc-selected');
		$(elem).parent().next().next().next().addClass('disnone');
	
    },
	showEmailMessage: function(elem) {
		$(elem).toggleClass('td-shared-desc-selected');
		$(elem).parent().next().next().toggleClass('disnone');
		$(elem).parent().prev().children().removeClass('td-shared-desc-selected');
		$(elem).parent().next().addClass('disnone');
	
    },
	
	
    loadCommunityData:function(callBack){
	$.ajax({
            url:'/account/loadcommunity',
            data:{},
            type:'POST',
            dataType:'json',
            success:function(jData){
                if (jData.success) {
		    callBack(jData.communities);
                }
            }
        });
    },
    createCommunity:function(callBack,pageName){
        var _context = this;
	
        var _popupDialog;
        var popup = $(document.createElement('div'))
            .addClass('popup');
        var _wrapper = $(document.createElement('div'))
            .css({
                width:'280px',
                margin:'20px auto 0px'
            })
            .appendTo(popup);
        var _loginWrapper = $(document.createElement('div'))
            .addClass('login-wrapper')
            .addClass('changepassword')
            .css({
                background:'#FFFFFF',
                padding:'5px',
                width:'346px',
                float:'left'
            })
            .appendTo(_wrapper);
        var _topCorner = $(document.createElement('div'))
            .addClass('box-346-top-crn')
            .appendTo(_loginWrapper);
        var _bottomCorner = $(document.createElement('div'))
            .addClass('box-346-bt-crn')
            .appendTo(_topCorner);
        var _midCorner = $(document.createElement('div'))
            .addClass('box-346-mid-crn')
            .appendTo(_bottomCorner);
        $(document.createElement('label'))
            .addClass('popup-label')
            .css({
                padding:'5px'
            })
            .html(_context.getTranslation('NG_COMMUNITY_NAME'))
            .appendTo(_midCorner);
        var tb = $(document.createElement('input'))
            .attr({
                type:'text',
                maxlength:'25'
            })
            .addClass('popup-input')
            .appendTo(_midCorner);
        var _btn = $(document.createElement('p'))
            .addClass('login-margin')
            .appendTo(_midCorner);
        $(new Image())
            .attr({
                border:0,
                src:'/images/' + jsCom._config._currentLangCode + '/submit.png'
            })
            .css({
                cursor:'pointer'
            })
            .click(function(){
                if (tb.isEmpty()) {
                    alert(_context.getTranslation('NG_ENTER_COMMUNITY_NAME'));
                    return;
                }
                $.ajax({
                    url:'/account/createcommunity',
                    data:{
                        communityName:tb.val()
                    },
                    dataType:'json',
                    type:'POST',
                    success:function(jData){
                        if (jData.success) {
			    if (callBack!='1'){
				callBack({});
			    }
			    if(pageName!=undefined){
				alert('reload address community section');
			    }
			_popupDialog.dialog('close');
                        }
                        else {
                            alert(jData.cause);
                        }
                    }
                });
                return;
            })
            .appendTo(_btn);
        $(document.createElement('div'))
            .addClass('changepassword-images-bottom')
            .appendTo(popup);
                
        _popupDialog = $(popup).dialog({
            width:600,
            title:_context.getTranslation('NG_CREATE_NEW_COMMUNITY'),
            modal:true,
            resizable:false,
            close:function(event, ui) {
                $(this).remove();
            }
        });
    }
};
